重新映射 alt+shift,并等待其他按键

重新映射 alt+shift,并等待其他按键

我正在尝试使用 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
}

相关内容