Autohotkey 使用自动热键防止双击键盘键

Autohotkey 使用自动热键防止双击键盘键,autohotkey,Autohotkey,我每天都使用一个应用程序,它监听控制键的双击。它还将另一个功能键映射到控制键的一次单击,并且在应用程序中无法阻止或重新映射一个或其他功能 我想做的是使用自动热键来防止应用程序响应双击控件 如果在两个控件按键事件之间插入鼠标移动,应用程序将不会响应默认的双击行为 我是否可以编写一个自动热键脚本来监听控制键的两次连续单击,并在第二次控制键单击之前插入一个良性事件(例如鼠标事件) 我已经尝试了以下代码,但第二个LControl仍在运行。是否有任何方法阻止第二个LControl通过 ~LControl:

我每天都使用一个应用程序,它监听控制键的双击。它还将另一个功能键映射到控制键的一次单击,并且在应用程序中无法阻止或重新映射一个或其他功能

我想做的是使用自动热键来防止应用程序响应双击控件

如果在两个控件按键事件之间插入鼠标移动,应用程序将不会响应默认的双击行为

我是否可以编写一个自动热键脚本来监听控制键的两次连续单击,并在第二次控制键单击之前插入一个良性事件(例如鼠标事件)

我已经尝试了以下代码,但第二个LControl仍在运行。是否有任何方法阻止第二个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
~LControl::
如果(主键热键“~LControl”或主键热键>400)
{
;两次按压之间的时间太长,因此这不是一次双重按压。
SendInput{LControl}
回来
}
鼠标移动5,5,10,R
;SendInput{LControl}
回来

当在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

使用此方法,您不仅可以轻松触发双击操作,还可以触发更多操作。

您可以通过定义“超时”来检测双击操作(400毫秒通常是好的)。然后,您可以在上一次按键时检查所需按键的每次按键。如果它在时间范围内,那就是一个双重压力。对于你的新代码:看一下。波浪线修饰符
~
将始终触发键的本机功能,也就是说,根据定义,
CTRL
按键将缓慢通过!删除修改器,
LControl::
应该可以。这不会阻止双击。