使用Lua编写自动点击脚本

我试图在使用Lua的Logitech GHUB中制作一个自动点击脚本。我尝试了许多变化,但总是出现语法错误。我以前没有编码经验。

代码的目的是当我按住P键时,鼠标重复点击并在这些点击之间等待随机间隔。还计划在按下和释放之间设置时间间隔。

EnablePrimaryMouseEvents(true)

function OnEvent(event, arg)
    --OutputLogMessage("Event: "..event.." Arg: "..arg.."\n")

if IsKeyPressed("P") then
    repeat
        PressMouseButton(1)
        ReleaseMouseButton(1)
        Sleep(math.random(29, 36))
        PressMouseButton(1)
        ReleaseMouseButton(1) ---- 语法错误(基本上在我改变代码时到处都会出现)
    until not IsKeyPressed("P") then
end
点赞
用户1847592
用户1847592

你想要的是不可能的。

G-Hub 无法确定 P 键是按下还是松开。

只有鼠标按键被监视(使用 IsMouseButtonPressed)。

而且,Shift/Alt/Ctrl 键也被监视(使用 IsModifierPressed)。

通常的键(字母、数字)不被监视。

G-Hub 存在一个 bug:在编译时错误消息中,行号会向后移动一个。

因此,语法错误实际上指向了与关键字 then 相关的 until not IsKeyPressed("P") 行。

顺便说一下,在 G-Hub 中没有定义函数 IsKeyPressed()

您可以在菜单 Help -> Scripting API 中阅读所有 G-Hub 函数的列表。

以下代码是一个由鼠标按钮 #4(“后退”)控制的自动点击器示例,而不是按键 P

EnablePrimaryMouseButtonEvents(true)

function OnEvent(event, arg)
   --OutputLogMessage("Event: "..event.." Arg: "..arg.."\n")
   if event == "MOUSE_BUTTON_PRESSED" and arg == 4 then
      repeat
         PressAndReleaseMouseButton(1)
         Sleep(math.random(30, 60))
      until not IsMouseButtonPressed(4)
   end
end
2020-12-18 13:29:25