如何在 LUA 中为 Logitech 鼠标按钮编写切换宏

How to program a toggle macro in LUA for Logitech Mouse button

我是 Lua 语言的新手,只想为 Logitech 鼠标按钮编写一个宏,所需的操作是:按下按钮开始并连续循环宏,直到我通过按下再次按钮。

我知道 post 有一个类似的问题是: 。但是我很难 运行 他们的示例代码。有两个问题: 1,我可以通过按下按钮 5 来启动循环,但是 while 循环只能通过按住按钮 5 来继续。我怎样才能设置 while 循环继续只按下 1 次然后释放? 2、再按5号键不会中断重复循环。它仍然保持 运行ning 连续。

我也试过这个代码

script_running = false
function OnEvent(event, arg)
    if event == "MOUSE_BUTTON_PRESSED" and arg == 5 then
        if script_running then
            script_running = false
            return
        else
            script_running = true
        end
        repeat
            OutputLogMessage("repeat\n")
            Sleep(3000)
        until not script_running
        OutputLogMessage("end\n")
    end
end

重复循环仍然无法停止。

谁能给出一些成熟的代码示例?非常感谢。

local flag

function OnEvent(event, arg)
   if event == "MOUSE_BUTTON_PRESSED" and arg == 5 then
      flag = not flag
      if flag then
         repeat
            -----------------------
            -- your actions here 
            OutputLogMessage("repeat\n")
            Sleep(1000)
            -----------------------
            Sleep(15)
            local prev_flag = flag
            flag = IsMouseButtonPressed(5)
         until not prev_flag and flag
      end
   end
end