2016-10-22 43 views
0

私は右マウスボタンを押して、シングルのキーストロークをDOWNに送信し、別のを別のキーストロークをUPに送信します。AHKホールドボタントグル

マウスの右ボタンを押下すると、そのホットキー(i)を送信することによって、スポイトツールを切り替え、マウスの右ボタンを解除すると、(b)はブラシのためのホットキーを送信する「擬似コード」例:

RButton down:: 
Send i ; Send eyedropper hotkey 

RButton up:: 
Send b ; Send brush hotkey 

他の質問から、GetKeyStateを使用しているwhileループが途中で途切れることがありますが、whileループによってキーが急速に起動することがわかりましたが、これは望ましくありません。

どのように右マウスボタンを対応する上/下ホットキーを上/下に1回だけ送信するのですか?

+0

RButton down ::をRButton ::とRButtonと置き換えて私の仕事をしていますが、構文エラーです – Skycc

答えて

0
; 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 
関連する問題