我目前正在查看一些Logach键盘的Lua编码。
我可以让代码在单次推送中工作,我已经放置了一个重复和睡眠计时器,并希望这个继续循环,直到我按下鼠标按钮,这不是工作。
这是我到目前为止所做的:
function OnEvent(event, arg)
if event == "G_PRESSED" and arg == 1 then
PressMouseButton(3)
repeat
MoveMouseRelative(-20,0)
Sleep(50)
until not PressMouseButton(1)
end
end
请注意,这是我第一次查看此类编码,因为非常感谢任何帮助。
答案 0 :(得分:0)
如果你想让G1键作为一个切换器,你将不得不做一些与你做的事情有所不同的事情。检查是否按下G1键的唯一方法是使用OnEvent()
处理程序响应click事件。 IsMouseButtonPressed()
不允许您检查G键。
如果您在按下按键后当前正在运行OnEvent()
功能,再次按G1键将再次调用该功能重新启动循环。为避免此问题,您需要保留一个标志,以防止该函数重新进入循环。此外,此标志将指示OnEvent()
的原始运行完成。
function OnEvent(event, arg)
if event == "G_PRESSED" and arg == 1 then
if script_running then
script_running = false
return
else
script_running = true
end
PressMouseButton(3)
repeat
MoveMouseRelative(-20,0)
Sleep(50)
until not script_running
end
end
上例中的标志是script_running
。函数script_running
的第一次运行是nil
(评估为false
)。因此script_running
设置为true
并运行循环。然后当您再次按下G1键时,它再次进入该功能,但此时script_running
为true
,它将script_running
变量设置为false
并退出该功能。此时原始循环最终将满足循环not script_running == true
的条件并且也将退出;停止剧本。
是的,这比原始代码更复杂,但不幸的是必要。