Autohotkey 如何在自动热键中设置组合阈值

Autohotkey 如何在自动热键中设置组合阈值,autohotkey,Autohotkey,下面介绍了如何在自动热键中定义自定义组合: 您可以定义两个键的自定义组合(操纵杆除外) 按钮)之间使用“&”。在下面的示例中,您将 按住Numpad0,然后按第二个键以触发热键: Numpad0 & Numpad1::MsgBox "You pressed Numpad1 while holding down Numpad0." Numpad0 & Numpad2::Run "Notepad" 但我找不到如何设置阈值。例如,我希望Nu

下面介绍了如何在自动热键中定义自定义组合:

您可以定义两个键的自定义组合(操纵杆除外) 按钮)之间使用“&”。在下面的示例中,您将 按住Numpad0,然后按第二个键以触发热键:

Numpad0 & Numpad1::MsgBox "You pressed Numpad1 while holding down Numpad0." 
Numpad0 & Numpad2::Run "Notepad" 

但我找不到如何设置阈值。例如,我希望
Numpad0&Numpad1
仅在用户在按下
Numpad0
后不到300毫秒内按下
Numpad1
时发生。您可以执行以下操作,例如:

Numpad0::
    if (!PressedAt)
        PressedAt := A_TickCount
return

Numpad0 Up::PressedAt := 0


#If, A_TickCount - PressedAt < 300
Numpad1::MsgBox
#If
Numpad0::
如果(!按一下)
按下按钮:=A_TickCount
返回
Numpad0向上::按日期:=0
#如果,则在<300时按A_TickCount
Numpad1::MsgBox
#如果
因此,使用
A_TickCount
来比较时间。
if语句之所以存在,是因为Windows的key repeat功能。如果没有它,则按住Numpad0时,
处按的时间会不断设置。
而且,
0
false
,因此我们也可以方便地在if语句中使用
PressedAt
变量

也可以不使用Numpad1的上下文敏感热键,它只会使该键保留其原始功能。
如果#如果导致您,您可以切换到热键标签内的正常If语句检查

如果需要,请确保将
~
前缀添加到Numpad0热键