我正在尝试使用 AutoHotKey根据以下条件 重新映射left alt+ :left shift
- 如果按下了left alt+ left shift,请等待两者均释放。
- 然后,一旦两者都释放:如果与它们一起按下了
键(即+ + ),则发送 1。否则,如果与它们一起按下了 键(即+ + ),则发送 2。 否则,发送 3。1left altleft shift1
2left altleft shift2
但是,我总是收到 3 封。
我究竟做错了什么?
LAlt & LShift::WaitAndSend()
WaitAndSend() {
KeyWait, LAlt
KeyWait, LShift
if (GetKeyState(1)) {
Send, 1
}
else if (GetKeyState(2)) {
Send, 2
}
else {
Send, 3
}
}
答案1
这内置变量 A_PriorKey是按键历史记录中最近一次按下或释放按键之前按下的最后一个按键的名称。
LAlt & LShift::WaitAndSend()
WaitAndSend() {
KeyWait, LAlt
KeyWait, LShift
If (A_PriorKey = "1")
Send, 1
else If (A_PriorKey = "2")
Send, 2
else
Send, 3
}