微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在 Autohotkey 中设置组合阈值

如何解决如何在 Autohotkey 中设置组合阈值

AutoHotkey 中有如何定义自定义组合的说明:

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

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

但是我找不到如何设置阈值。例如,我希望 Numpad0 & Numpad1 仅在用户按下 Numpad1 后不到 300 毫秒内按下 Numpad0 时发生。

解决方法

您可以执行以下操作,例如:

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

Numpad0 Up::PressedAt := 0


#If,A_TickCount - PressedAt < 300
Numpad1::MsgBox
#If

所以使用 A_TickCount(docs) 来比较时间。
由于 Windows 的关键重复功能,if 语句在那里。没有它,PressedAt 时间会在按住 Numpad0 时不断设置。
此外,0false,因此我们也可以方便地在 if 语句中使用 PressedAt 变量。

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。