如何检查 NumPad 状态?

如何检查 NumPad 状态?

当数字键盘被禁用时,我想用它执行一些操作(AutoHotKey V2)

对于根据状态而具有不同名称的内部键来说,这很容易NumLock

NumpadRight:: MsgBox("pressed right arrow when numpad is off")

*我对外部键(没有取决于数字键盘状态的特定名称)所做的操作非常野蛮,因为我必须对每个命令重复状态检查:

NumpadMult:: {
    if (!GetKeyState("NumLock", "T"))
        MsgBox("specific action for NumLock off")
    else
        Send "*"
}

NumLock当有多个操作时,有没有更简单的方法来检查状态?

NumLock我尝试了以下操作,但在初始脚本启动后似乎没有重新评估的状态(我总是会弹出正确的状态01):

if (GetKeyState("NumLock", "T")) {
    NumpadMult:: MsgBox(GetKeyState("NumLock", "T"))
}

答案1

一种不那么野蛮的方法是使用 #If(v1)或#HotIf(v2)命令与所有键一起,无需一遍又一遍地检查:

; v1
#If !GetKeyState("NumLock","T")
    NumpadMult::MsgBox, "specific action for NumLock off"
#If

; v2
#HotIf !GetKeyState("NumLock","T")
    NumpadMult::MsgBox, "specific action for NumLock off"
#HotIf

相关内容