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

如何在Lua中实现按住Shift切换鼠标按键功能?

罗技G-Hub Lua脚本:Shift按住时重映射鼠标4键功能

要实现按住Shift时将鼠标4键改为输入「1」,你需要监听鼠标按键的按下/释放事件,并结合Shift状态来覆盖原生功能。以下是修正后的完整代码:

function OnEvent(event, arg)
    -- 捕获鼠标4键按下事件
    if event == "MOUSE_BUTTON_PRESSED" and arg == 4 then
        if IsModifierPressed("lshift") then
            -- 屏蔽鼠标4键的原生功能
            SuppressMouseButton(4)
            -- 模拟按下「1」键
            PressKey("1")
            OutputLogMessage("Shift+鼠标4键触发,输入1\n")
        end
    end

    -- 捕获鼠标4键释放事件
    if event == "MOUSE_BUTTON_RELEASED" and arg == 4 then
        if IsModifierPressed("lshift") then
            -- 松开「1」键,避免持续输入
            ReleaseKey("1")
            OutputLogMessage("Shift+鼠标4键释放\n")
        end
    end

    -- 可选:Shift状态日志输出
    if event == "MODIFIER_PRESSED" and arg == "lshift" then
        OutputLogMessage("Shift Held\n")
    end
    if event == "MODIFIER_RELEASED" and arg == "lshift" then
        OutputLogMessage("Shift NOT Held\n")
    end
end

关键逻辑说明

  • 事件监听:通过event == "MOUSE_BUTTON_PRESSED"和event == "MOUSE_BUTTON_RELEASED"捕获鼠标按键的按下/释放动作,arg == 4指定目标为鼠标4键(罗技脚本中按键编号:1=左键,2=右键,3=中键,4=前侧键,5=后侧键)。
  • 屏蔽原生功能:SuppressMouseButton(4)会阻止鼠标4键的默认功能触发,确保只有我们定义的新功能生效。
  • 按键成对操作:PressKey和ReleaseKey必须成对使用,否则会导致「1」键一直处于按下状态。
  • Shift兼容:如果需要支持左右Shift,可将IsModifierPressed("lshift")改为IsModifierPressed("shift"),这样左右Shift按键都会触发重映射。

测试提示

在G-Hub中启用脚本后,可通过「日志」面板查看输出信息,确认逻辑是否正常触发;同时确保脚本已分配到对应鼠标或设置为全局生效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 14:40:55