【问题标题】:How to set combination threshold in Autohotkey如何在 Autohotkey 中设置组合阈值
【发布时间】:2021-02-20 07:28:55
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: autohotkey


    【解决方案1】:

    例如,您可以这样做:

    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 热键中。

    【讨论】:

      猜你喜欢
      • 2020-09-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-25
      • 2011-07-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多