如何设置"自动热键"的组合阈值



关于如何在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时间将不断被设置。
另外,0false,所以我们也可以方便地在if语句中使用PressedAt变量。

也可以在没有上下文敏感热键的情况下为Numpad1完成,它只是使键保留其原始功能。
如果#If给您带来麻烦,您可以在热键标签内切换到正常的If语句检查。

如果你想的话,一定要在Numpad0热键上添加~前缀(docs)

最新更新