0

コントロールキーのダブルクリックをリッスンするアプリケーションを毎日使用しています。また、コントロール キーを 1 回クリックするだけで別の機能をキーマップし、アプリケーション内で特定の機能を防止または再マップする方法はありません。

私がやりたいことは、AutoHotkey を使用して、アプリケーションがダブル コントロール クリックに応答しないようにすることです。

マウスの移動が 2 つのコントロール キーダウン イベントの間に挿入された場合、アプリケーションはデフォルトのダブルクリック動作で応答しません。

コントロール キーの連続した 2 回のクリックをリッスンし、2 回目のコントロール クリックの前に無害なイベント (マウス イベントなど) を挿入する AutoHotkey スクリプトを作成する方法はありますか?

次のコードを試しましたが、2 番目の LControl はまだ処理中です。2番目の LControl が通過するのを防ぐ方法はありますか?

~LControl::
if (A_PriorHotkey <> "~LControl" or A_TimeSincePriorHotkey > 400)
{
    ; Too much time between presses, so this isn't a double-press.
    SendInput {LControl}
    return
}
MouseMove 5,5,10,R
;SendInput {LControl}
return
4

1 に答える 1

-1

左または右のコントロール キーが 400 ミリ秒以内にすばやく押されたときにアクションをトリガーするために使用する方法を次に示します。

~Control Up::
  if ctrl_presses > 0
    ctrl_presses += 1
  else {
    ctrl_presses = 1
    SetTimer, CtrlPress, 400
  }
return

CtrlPress:
  SetTimer, CtrlPress, off
  if ctrl_presses = 2
    ; DO ACTION HERE
  ctrl_presses = 0
return

この方法を使用すると、ダブルプレスだけでなく、さらに多くのアクションを簡単にトリガーできます。

于 2013-10-02T16:55:49.613 に答える