if语句的存在是因为Windows的键重复功能。如果没有它,当Numpad0被按下时,
另外,
关于如何在AutoHotkey中定义自定义组合的描述:
您可以定义两个键的自定义组合(除了操纵杆)按钮),使用",";他们之间。在下面的示例中,您可以这样做按住Numpad0,然后按第二个键触发热键:
Numpad0 & Numpad1::MsgBox "You pressed Numpad1 while holding down Numpad0." Numpad0 & Numpad2::Run "Notepad"
但是我找不到如何设置阈值。例如,我希望Numpad0 & Numpad1
只在用户按下Numpad0
后在不到300ms内按下Numpad1
时发生。
你可以这样做,例如:
Numpad0::
if (!PressedAt)
PressedAt := A_TickCount
return
Numpad0 Up::PressedAt := 0
#If, A_TickCount - PressedAt < 300
Numpad1::MsgBox
#If
所以使用A_TickCount
(docs)来比较时间。if语句的存在是因为Windows的键重复功能。如果没有它,当Numpad0被按下时,
PressedAt
时间将不断被设置。另外,
0
是false
,所以我们也可以方便地在if语句中使用PressedAt
变量。
也可以在没有上下文敏感热键的情况下为Numpad1完成,它只是使键保留其原始功能。
如果#If
给您带来麻烦,您可以在热键标签内切换到正常的If语句检查。
如果你想的话,一定要在Numpad0热键上添加~
前缀(docs)。