在LUA脚本(logitech G hub)中创建键盘切换功能



这将是我在这里的第一篇文章。我试图创建一个脚本,作为一个使用LUA切换工作我想要的功能是一个单一的键"G1"当按下时启动循环,当再次按下时中断循环。

我代码:

local msMakro = false
local safety = 0
function OnEvent(event, arg)
OutputLogMessage("Event: "..event.." Arg: "..arg.."n")

--MS MAKRO--
if (event == "G_PRESSED" and arg == 1) then
OutputLogMessage("nG1 Pressed n")
msMakro = not msMakro
OutputLogMessage("msMakro = ")
OutputLogMessage(tostring(msMakro))
OutputLogMessage("n")
end

while (msMakro and safety < 5) do
PressAndReleaseKey("a")
Sleep(math.random(1000, 1500))
safety = safety +1
OutputLogMessage("safety = ")
OutputLogMessage(safety)
OutputLogMessage("n")        
end
end

下面的代码不允许打破循环,再次按下按钮,它只会将调用排队,并在安全条件

下退出while后显示在终端中我已经寻找了类似的问题,但似乎没有找到一个解决方案,适用于这种情况

Assign "Back"G1键的动作。
"Back"action是鼠标按钮4的标准赋值。
现在你的G1键的作用是"后退"鼠标按钮,可以通过IsMouseButtonPressed(4)监视其状态。

local msMakro = false
local safety = 0
function OnEvent(event, arg)
OutputLogMessage("Event: "..event.." Arg: "..arg.."n")
--MS MAKRO--
if event == "G_PRESSED" and arg == 1 then
OutputLogMessage("nG1 Pressed n")
msMakro = not msMakro
OutputLogMessage("msMakro = ")
OutputLogMessage(tostring(msMakro))
OutputLogMessage("n")
while msMakro and safety < 5 do
PressAndReleaseKey("a")
local tm = GetRunningTime() + math.random(1000, 1500)
local prev_mb4 = true
repeat
Sleep(10)
local mb4 = IsMouseButtonPressed(4)
if mb4 and not prev_mb4 then return end
prev_mb4 = mb4
until GetRunningTime() > tm
safety = safety +1
OutputLogMessage("safety = ")
OutputLogMessage(safety)
OutputLogMessage("n")
end
end
end

最新更新