You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

罗技鼠标Lua宏编写:按住按键循环带随机延时操作异常问题咨询

你的代码存在4个核心问题

    1. API拼写错误:罗技GHUB/LGS的Lua API严格区分大小写,释放按键的正确函数名是ReleaseKey,你代码里的Releasekey(首字母k小写)属于未定义函数,执行到该行会直接报错中断,所以只执行了PressKey("1")就停止后续逻辑,表现为按键1一直被按住。
    1. 缺少循环逻辑:你原本的预录制宏设置了循环执行,手写代码只有单次执行逻辑,触发一次只会跑一遍流程,不会重复运行。
    1. 未初始化随机数种子:直接调用math.random生成的随机数序列是固定的,每次启动脚本都会重复相同的延时数值,达不到随机效果。
    1. 缺少中止逻辑:你原有逻辑是松开侧键20就终止宏运行,现有代码松开侧键没有终止逻辑,循环一旦启动就无法停下。

修正后的完整代码

-- 初始化随机数种子,保证每次运行生成的随机数不同
math.randomseed(os.time())
-- 循环控制标志位
local loop_running = false

function OnEvent(event, arg)
    -- 按下侧键20时切换循环状态
    if event == "MOUSE_BUTTON_PRESSED" and arg == 20 then
        loop_running = not loop_running
        -- 如果开启循环,就执行循环逻辑
        if loop_running then
            -- 循环持续到loop_running变为false为止
            while loop_running do
                -- 对应原宏第一个延时(改为120-160随机)
                Sleep(math.random(120, 160))
                -- 按下释放按键1
                PressKey("1")
                Sleep(10) -- 加短延时保证按键触发被系统识别
                ReleaseKey("1")
                -- 原逻辑90ms延时
                Sleep(90)
                -- 左键点击
                PressMouseButton(1)
                Sleep(10)
                ReleaseMouseButton(1)
                -- 点击后随机延时120-160ms
                Sleep(math.random(120, 160))
                -- 按下释放按键2
                PressKey("2")
                Sleep(10)
                ReleaseKey("2")
                -- 原逻辑90ms延时
                Sleep(90)
                -- 左键点击
                PressMouseButton(1)
                Sleep(10)
                ReleaseMouseButton(1)
                -- 最后一个延时改为120-160随机
                Sleep(math.random(120, 160))
            end
        end
    end
    -- 松开侧键20时直接终止循环
    if event == "MOUSE_BUTTON_RELEASED" and arg == 20 then
        loop_running = false
        -- 防止按键粘滞,主动释放所有用到的按键
        ReleaseKey("1")
        ReleaseKey("2")
        ReleaseMouseButton(1)
    end
end

代码说明

  • 支持两种触发逻辑:按一下侧键20就循环运行,再按一下停止;或者按住侧键20运行,松开就停止,和你原有使用习惯完全匹配
  • 所有需要随机的延时都替换为了120-160ms的随机值
  • 额外增加了按键按下后的10ms短延时,避免系统识别不到按键操作,同时加入了中止时的主动释放逻辑,不会出现按键粘滞的问题

内容的提问来源于stack exchange,提问作者Maike

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 05:21:02