AutoHotkeyのマウスイベントのフィルタリングを調整するにはどうすればよいですか?


0

として書かれたキーの組み合わせがあります~XButton1 & XButton2::。組み合わせを押しても、XButton1イベントは除外されません。これにより、たとえば、ブラウザがページを戻したくないときに戻ります。

ドキュメントによると、を削除する~と、キーがシステムの他の部分に渡されなくなります。ただし、XButton1コンボを終了するかどうかに関係なく、システムに渡されることはありません。

私が見たい動作は次のとおりです。

AHkは、受信した最初のXButton1イベントをバッファリングする必要があります。私がいる場合押してXButton2、システムに何を渡します。ただし、を押さない場合はXButton2、すばやくXButton1上下に送信します。

この動作を取得する方法はありますか?

回答:


0

&に関する AutoHotkeyのドキュメントで説明されているように、a & bパターンを使用すると、aキーの元の機能が失われます。ようにするにはa、それが単独で使われているとき、解除のキー仕事を、あなたは戻って、それ自体にマップするようなホットキーを作ることができますa::Send {a}

あなたの場合、あなたは次のようなものを試すかもしれません

XButton1 & XButton2:: あなたが望むものなら、なんでも
XButton1::Send {XButton1}


これでした。私はそのセクションを見逃した方法がわかりません。ありがとう!
zildjohn01

0

KeyWaitドキュメンテーションの例#4で説明されているように、KeyWait関数とA_PriorHotKeyおよびA_TimeSincePriorHotkey変数で遊んでみてください。

; Example #4: Detects when a key has been double-pressed (similar to double-click).
; KeyWait is used to stop the keyboard's auto-repeat feature from creating an unwanted
; double-press when you hold down the RControl key to modify another key.  It does this by
; keeping the hotkey's thread running, which blocks the auto-repeats by relying upon
; #MaxThreadsPerHotkey being at its default setting of 1.
; Note: There is a more elaborate script to distinguish between single, double, and
; triple-presses at the bottom of the SetTimer page.

~RControl::
if (A_PriorHotkey <> "~RControl" or A_TimeSincePriorHotkey > 400)
{
    ; Too much time between presses, so this isn't a double-press.
    KeyWait, RControl
    return
}
MsgBox You double-pressed the right control key.
return
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.