【问题标题】:AHK Hold Button ToggleAHK 保持按钮切换
【发布时间】:2016-10-27 16:12:23
【问题描述】:

我希望鼠标右键在 DOWN 时发送 单次 击键,在 UP 时发送另一个 单独的单 击键。

“伪代码”示例,其中按下鼠标右键通过发送热键 (i) 来切换吸管工具,释放鼠标右键发送画笔热键 (b):

RButton down::
Send i ; Send eyedropper hotkey

RButton up::
Send b ; Send brush hotkey

我从其他问题中了解到,使用 GetKeyState 的 while 循环可能会部分到达那里,但 while 循环会导致键快速触发,这是不希望的。

如何让鼠标右键在上/下时只发送一次对应的上/下热键?

【问题讨论】:

  • 它对我有用,将 RButton down:: 替换为 RButton:: 和 RButton down 给我语法错误

标签: autohotkey


【解决方案1】:
; RIGHT BUTTON HOTKEY
RButton::
GetKeyState, state, RButton, P ;GET RIGHT MOUSE BUTTON STATE
if state = D ;IF BUTTON STATE = DOWN 
{
    SetTimer, CheckRButtonState, 10 ;SET TIMER TO MONITOR WHEN IT WAS RELEASED
    Goto, RButtonDown ;JUMP TO SUBROUTINE FOR BUTTON STATE = DOWN
}
return
; TIMER
CheckRButtonState: ;TRIGGERED BY TIMER IN EVERY 10 MILLISECONDS
GetKeyState, state, RButton, P ;GET RIGHT MOUSE BUTTON STATE
if state = U ;IF BUTTON STATE = UP 
{
    SetTimer, CheckRButtonState, Off ;STOP TIMER
    Goto, RButtonUp ;JUMP TO SUBROUTINE FOR BUTTON STATE = UP
}
return
; SUBROUTINE FOR RIGHT BUTTON PRESSED
RButtonDown:
TrayTip,Down, %state% ;PUT HERE THE TASKS YOU WANT IT TO PERFORM WHEN BUTTON IS DOWN
return
; SUBROUTINE FOR RIGHT BUTTON RELEASED
RButtonUp:
TrayTip,Up, %state% ;PUT HERE THE TASKS YOU WANT IT TO PERFORM WHEN BUTTON IS UP
return

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-16
    • 2016-01-08
    相关资源
    最近更新 更多