Lua Script:为鼠标移动添加重复代码

时间:2017-08-28 19:54:03

标签: lua repeater

我目前正在查看一些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

请注意,这是我第一次查看此类编码,因为非常感谢任何帮助。

1 个答案:

答案 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_runningtrue,它将script_running变量设置为false并退出该功能。此时原始循环最终将满足循环not script_running == true的条件并且也将退出;停止剧本。

是的,这比原始代码更复杂,但不幸的是必要。