在 AHK 中,如果按下的键是左箭头键,我怎么说

In AHK, how do I say if key pressed is left arrow key

在 AHK 中,我有以下脚本:

Input, SingleKey, L1, {Left}{Right}{Up}{Down}
if (SingleKey = "{Left}")
  whatever()

如何检测变量"SingleKey"是否为左箭头。以上都不行。

有无 {Left}{Right}{Up}{Down}

我都试过了

有没有比 "Input" 更好的方法来获取按键。我知道我可以将左键设置为热键,但这不是我想要的:

LEFT::whatever()  ;NOT what I want

我也试过:

arrowkey := ""
Loop
{
    GetKeystate, state, Left
    if (state = D)
    {
        arrowkey := "left"
        break
    }
}

if (arrowkey = "left")
    whatever()

这也没有任何作用 - 永远保持在循环中

终于到了。这是我的解决方案。使用了 GetKeyState 函数(不是 GetKeyState 命令):

Loop
{
    Sleep,10

    if (GetKeystate("Left") = 1)
    {
        arrowkey := "left"
        break
    }

    if (GetKeystate("Right") = 1)
    {
        arrowkey := "right"
        break
    }

    if (GetKeystate("Up") = 1)
    {
        arrowkey := "up"
        break
    }

    if (GetKeystate("Down") = 1)
    {
        arrowkey := "down"
        break
    }
}

if (arrowkey = "left")
    whatever()