Autohotkey 在AHK中,我如何判断按下的键是否为左箭头键

Autohotkey 在AHK中,我如何判断按下的键是否为左箭头键,autohotkey,Autohotkey,在AHK中,我有以下脚本: Input, SingleKey, L1, {Left}{Right}{Up}{Down} if (SingleKey = "{Left}") whatever() 如何检测变量“SingleKey”是否为左箭头。上述方法不起作用 我试过使用和不使用{Left}{Right}{Up}{Down} 除了“输入”之外,还有更好的方法获得按键吗。我知道我可以将左键设置为热键,但这不是我想要的: LEFT::whatever() ;NOT what I want 我

在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()

这也没什么用-永远留在循环中

最终到达了那里。这是我的解决办法。使用了GetKeyState函数(不是GetKeyState命令):


如果需要检查键的状态,请查看GetKeyState命令()。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()