在AHK中,如何按下键是否为左箭头键

时间:2015-03-17 14:00:53

标签: autohotkey

在AHK中,我有以下脚本:

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

如何检测变量" SingleKey"是左箭头。以上不起作用。

我在使用和不使用{Left}{Right}{Up}{Down}

时尝试过它

除了"输入"之外,还有更好的方法来获得按键吗?我知道我可以将左键设置为热键,但这不是我想要的:

LEFT::whatever()  ;NOT what I want

我也尝试过:

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

if (arrowkey = "left")
    whatever()

那也没有做任何事情 - 永远留在循环中

1 个答案:

答案 0 :(得分:2)

到最后到达那里。这是我的解决方案。使用了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()