如何解决自动热键异步循环
这是我的代码:
toggle:=0
z::
if GetKeyState("LButton") {
toggle:= 0
Send % "{Click Up}"
Send % "{w Up}"
Send % "{Ctrl Up}"
BlockInput,MouseMoveOff
} else {
Send % "{Click Down}"
Send % "{w Down}"
Send % "{Ctrl Down}"
BlockInput,MouseMove
toggle := 1
If (toggle := 1)
SetTimer,loop,-1
}
return
loop:
while (toogle := 1) {
MouseMove,50,R
MouseMove,-50,R
Sleep,700
}
return
按“左键单击”,“ w”和“ ctrl” 如果再次按下“ z”,则将其释放
循环应使鼠标每隔1秒左移一次,然后将同样的量向右移
但这不起作用
如果我按“ z”,循环不会停止
解决方法
:=
(docs) 用于分配表达式的结果,而不是比较值。
使用=
or ==
运算符进行比较。
或者,当您只是在检查真/假值时,(toggle = 1)
与(toggle)
和(toggle = 0)
与(!toggle)
相同。
您在while循环中还拼错了toggle
。
这是固定的 代码(逻辑上似乎仍然很不完善)。
但是也许当脚本错误消失后,您现在可以修复逻辑。
z::
if (GetKeyState("LButton"))
{
toggle := 0
Send % "{Click Up}"
Send % "{w Up}"
Send % "{Ctrl Up}"
BlockInput,MouseMoveOff
}
else
{
Send % "{Click Down}"
Send % "{w Down}"
Send % "{Ctrl Down}"
BlockInput,MouseMove
toggle := 1
;this check will never be false because literally right above you set the value?
if (toggle)
SetTimer,loop,-1
}
return
loop:
while (toggle)
{
MouseMove,50,R
MouseMove,-50,R
Sleep,700
}
return
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。