Autohotkey 在AHK中,我如何判断按下的键是否为左箭头键
在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 我
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()