下面是我写的一个alt+tab程序,由于某种原因,它不能工作。
while x = 1
{
mb1 := GetKeyState(j)
mb2 := GetKeyState(k)
if (mb1 = 1) and (mb2 = 1)
{
Send, {Alt Down}
Send, {Tab Down}
sleep, 50
Send, {Alt Up}
Send, {Tab Up}
}
}我尝试过多种循环和密钥检测方法,但都没有效果。
发布于 2021-02-10 04:03:18
您不需要在if语句之前将keystate值存储在变量中;您可以在if语句本身期间检查它们。
因此,您可以通过这样的方法来实现这个更改:
Loop
{
if (GetKeyState("j") && GetKeyState("k"))
{
Send, {Alt Down}
Send, {Tab Down}
sleep, 50
Send, {Alt Up}
Send, {Tab Up}
}
}但是,如果出于某种原因需要保存KeyStates的值,有几种方法可以做到这一点:
注意:对于每个迭代都要始终更新的两个变量,您需要用效率较低的&&替换效率较低的&,因为&&将在确定表达式为false时立即停止检查变量。
这看起来应该是:
Loop
{
if (mb1:=GetKeyState("j") & mb2:=GetKeyState("k"))
{
Send, {Alt Down}
Send, {Tab Down}
sleep, 50
Send, {Alt Up}
Send, {Tab Up}
}
MsgBox During the last check, j was %mb1%, and k was %mb2%!
}注意:尽管该命令的这个版本使得将命令的输出保存到变量中更加简单,但它是折旧的,不建议在新脚本中使用。
https://stackoverflow.com/questions/66130533
复制相似问题