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

为何IsKeyLockOn函数可使罗技GHUB Lua脚本在非罗技鼠标上生效?

罗技GHUB Lua脚本跨鼠标品牌生效的原因解析

问题背景

我写了两个罗技GHUB Lua脚本,出现了不同的跨品牌鼠标运行表现:

脚本1(带NumLock检测)

EnablePrimaryMouseButtonEvents(true);

function OnEvent(event, arg)
    if IsKeyLockOn("numlock")then
        repeat  
            if IsMouseButtonPressed(5) then
                repeat
                    PressMouseButton(1)
                    Sleep(15) 
                    ReleaseMouseButton(1)
                    Sleep(15) 
                until not IsMouseButtonPressed(5)
            end             
        until not IsKeyLockOn("numlock")
    end         
end

现象:只要NumLock开启,先按罗技鼠标的5号键(或用罗技鼠标绑定切换NumLock),该脚本就能在非罗技鼠标上运行。

脚本2(移除NumLock检测)

EnablePrimaryMouseButtonEvents(true);

function OnEvent(event, arg)
    if IsMouseButtonPressed(5) then
        repeat
            PressMouseButton(1)
            Sleep(15) 
            ReleaseMouseButton(1)
            Sleep(15) 
        until not IsMouseButtonPressed(5)
    end             
end

现象:无法在非罗技鼠标上工作。

作为GHUB Lua API新手,想请教这一现象的原因。

原因解析

  • GHUB脚本的核心触发逻辑:罗技GHUB的Lua脚本只有在罗技自有设备产生输入事件(比如按键按下、锁键状态切换)时,才会被唤醒执行。它不会主动监听非罗技品牌外设的输入事件。
  • 脚本1能跨品牌运行的关键:
    当你用罗技鼠标触发NumLock切换或按下5号键时,GHUB捕捉到自家设备的事件,启动脚本执行。随后脚本进入外层的repeat...until循环,只要NumLock保持开启,就会持续主动轮询系统层面的鼠标按键状态(IsMouseButtonPressed(5)是读取系统全局的按键状态,而非仅罗技设备的),因此能检测到非罗技鼠标的5号键按下,进而执行连点操作。
  • 脚本2失效的原因:
    这个脚本没有依赖罗技设备的事件触发入口——非罗技鼠标的5号键按下无法唤醒GHUB的脚本执行。脚本根本没启动,自然无法检测到非罗技鼠标的按键状态,也就不会执行连点逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 23:32:51