AutoHotKey如何在按住键时忽略键

时间:2019-08-19 00:33:02

标签: autohotkey

我正试图将按键保持300ms并激活一些动作,但是如果我一直按住该按键,它会一遍又一遍地激活该动作。

我尝试使用$和A_TimeSincePriorHotkey,但都无济于事。

$r::
    if (A_PriorHotkey = "r" and A_TimeSincePriorHotkey < 100)
            return

    keywait, r, T0.3

    if (ErrorLevel = 1)
    {
        GetKeyState, Mode, NumLock, T
        if (Mode="U")
            SetNumLockState ON
        else
            SetNumLockState OFF

        send {r up}
    }
    else
        send {r}
return

1 个答案:

答案 0 :(得分:3)

尝试一下。唯一的调整是添加KeyWait, r,这将导致脚本等待直到释放热键为止,以便在按您所描述的那样按下热键时它不会持续激活。

$r::
if (A_PriorHotkey = "~r" and A_TimeSincePriorHotkey < 100)
        return

keywait, r, T0.3

if (ErrorLevel = 1)
{
    GetKeyState, Mode, NumLock, T
    if (Mode="U")
        SetNumLockState ON
    else
        SetNumLockState OFF

    KeyWait, r
}
else
    send {r}
return