LG Hub脚本失效求助:NumLock关联鼠标中键宏无响应
脚本问题排查与修复
核心问题分析
你的脚本存在三个关键逻辑错误,导致完全无法触发预期行为:
- 事件判断逻辑错误:
OnEvent的第一个参数event是触发脚本的事件类型(如"MOUSE_BUTTON_PRESSED"),而非NumLock的状态。你直接将event与IsKeyLockOn("numlock")返回的布尔值做比较,两者类型不匹配,永远不会触发分支。 - 条件分支嵌套错误:第二个
if判断被嵌套在第一个if的代码块内,只有第一个条件成立时才会检查它,但第一个条件本身永远不成立,导致日志输出分支完全无法执行。 - 缺少事件类型过滤:未判断触发事件是否为鼠标按键按下事件,脚本无法识别何时响应鼠标中键操作。
修复后的脚本
local Macro_Start = 3 -- 对应鼠标中键 function OnEvent(event, arg) -- 仅响应鼠标中键按下事件 if event == "MOUSE_BUTTON_PRESSED" and arg == Macro_Start then if IsKeyLockOn("numlock") then EnablePrimaryMouseButtonEvents(true) PressMouseButton(1) repeat PressKey("d") Sleep(math.random(72000,73000)) ReleaseKey("d") Sleep(math.random(100,200)) PressKey("s") Sleep(math.random(1100,1400)) ReleaseKey("s") Sleep(math.random(100,200)) PressKey("a") Sleep(math.random(72000,73000)) ReleaseKey("a") Sleep(math.random(100,200)) PressKey("s") Sleep(math.random(1100,1400)) ReleaseKey("s") until not IsKeyLockOn("numlock") ReleaseMouseButton(1) else OutputLogMessage("Turn on NumLock\n") end end end
修复说明
- 先判断触发事件为
"MOUSE_BUTTON_PRESSED"且是鼠标中键(arg=3),确保脚本只在按下中键时响应 - 将NumLock状态判断作为内层分支,分别处理开启和关闭的场景
- 修正分支嵌套结构,让日志输出分支能正常触发
- 给
OutputLogMessage添加换行符\n,确保日志能即时显示
内容的提问来源于stack exchange,提问作者RebelTroll
相关产品推荐
相关产品推荐

