如何让Logitech G910的Lua脚本仅在M3模式下生效
解决Logitech G910脚本仅在M3模式激活的问题
要让绑定在G1键的Lua脚本仅在M3模式下触发,你需要在原有G键按下的判断逻辑中,添加当前M模式为M3的检查——Logitech的Lua API提供了GetMKeyState()函数来获取当前激活的M模式,返回值1对应M1,2对应M2,3对应M3。
修改后的完整脚本
if (event == "G_PRESSED" and arg == 1 and GetMKeyState() == 3) then MoveMouseTo(63076, 53509) Sleep(150) PressMouseButton(3) ReleaseMouseButton(3) Sleep(150) MoveMouseTo(60583, 56728) Sleep(150) PressMouseButton(1) ReleaseMouseButton(1) end
为什么你之前的写法无效
你尝试的if (event == "M3_ACTIVE" and "G_PRESSED" and arg == 1)这类写法存在两个问题:
- 事件
event在单次触发时只会是一个值(比如G_PRESSED),不可能同时等于M3_ACTIVE和G_PRESSED,逻辑上矛盾。 "G_PRESSED"作为单独的条件会被Lua视为布尔值true,因为非空字符串在Lua中永远为真,这会导致条件失去实际判断意义。
补充说明
GetMKeyState()是Logitech Gaming Software/LGHUB Lua环境的内置函数,无需额外导入即可直接使用。- 如果你的脚本需要在模式切换时做其他处理,也可以监听
M_ACTIVE事件,但针对当前需求,直接在G键触发时检查模式是最简洁的方案。
内容的提问来源于stack exchange,提问作者Todd Harris
相关产品推荐
相关产品推荐

