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