如何用鼠标4/5键分别启停Logitech GHub脚本中的两个指令?
Logitech GHub 脚本实现侧键切换指令方案
核心思路
用全局变量跟踪当前激活的指令模式,鼠标4键切换到模式1(执行第一个指令),鼠标5键切换到模式2(自动关闭模式1并启用第二个指令),保留原脚本的Capslock激活条件,仅在Capslock开启、左键+右键按住时触发对应模式的鼠标移动逻辑。
修改后的完整脚本
-- 全局变量:记录当前激活的指令模式,1=第一个指令,2=第二个指令 local current_mode = nil function OnEvent(event, arg) if event == "PROFILE_ACTIVATED" then EnablePrimaryMouseButtonEvents(true) current_mode = nil -- 切换配置时重置模式状态 end -- 处理鼠标侧键切换模式 if event == "MOUSE_BUTTON_PRESSED" then if arg == 4 then current_mode = 1 -- 按下鼠标4键,激活第一个指令 elseif arg == 5 then current_mode = 2 -- 按下鼠标5键,切换到第二个指令 end end -- 触发指令的条件:Capslock开启 + 左键按下 + 右键按住 if IsKeyLockOn("Capslock") and event == "MOUSE_BUTTON_PRESSED" and arg == 1 and IsMouseButtonPressed(3) then if current_mode == 1 then -- 执行第一个指令的鼠标移动逻辑 repeat MoveMouseRelative(0, 50) Sleep(24) MoveMouseRelative(0, 50) Sleep(24) MoveMouseRelative(0, 43) Sleep(24) MoveMouseRelative(0, 28) Sleep(24) MoveMouseRelative(15, -15) Sleep(24) MoveMouseRelative(-15, 15) Sleep(24) until not IsMouseButtonPressed(1) elseif current_mode == 2 then -- 执行第二个指令的鼠标移动逻辑 repeat MoveMouseRelative(-16, 16) Sleep(10) MoveMouseRelative(16, -16) Sleep(10) until not IsMouseButtonPressed(1) end end end
关键修改说明
- 全局变量
current_mode:用来持久化当前的指令模式状态,确保切换侧键后模式不会随事件触发重置。 - 侧键事件监听:直接绑定鼠标4/5键的按下动作,一键完成模式切换,逻辑简洁直接。
- 合并触发条件:把原脚本重复的Capslock、左键+右键判断合并,减少冗余代码,逻辑更清晰。
- 模式匹配执行:仅在对应模式下执行指定的鼠标移动循环,避免原脚本中两个逻辑同时触发的冲突问题。
内容的提问来源于stack exchange,提问作者André Storch
相关产品推荐
相关产品推荐

