新手求助:合并两个Logitech脚本后仅第二个生效,求解决方案
解决Logitech脚本合并后仅第二个生效的问题
问题根源很直接:你两个脚本都定义了OnEvent函数——Lua里同名函数的后定义会直接覆盖前一个,所以合并后只有第二个脚本的逻辑在运行。
把两个脚本的逻辑整合到同一个OnEvent函数里,同时保留第二个脚本的全局变量,就能让两个功能同时生效。合并后的完整代码如下:
-- 保留第二个脚本的全局变量,确保循环逻辑正常运行 keys = {"1", "2", "1", "2"} i = 1 lastPress = 0 function OnEvent(event, arg) -- 第一个脚本的日志输出与Profile状态处理 OutputLogMessage("event = %s, arg = %d\n", event, arg) if (event == "PROFILE_ACTIVATED") then EnablePrimaryMouseButtonEvents(true) elseif event == "PROFILE_DEACTIVATED" then ReleaseMouseButton(2) -- 防止按键卡住 end -- 第一个脚本的鼠标侧键6逻辑 if (event == "MOUSE_BUTTON_PRESSED" and arg == 6) then PressKey("z", "n") ReleaseKey("n") end if (event == "MOUSE_BUTTON_RELEASED" and arg == 6) then ReleaseKey("z") PressAndReleaseKey("n") end -- 第二个脚本的鼠标侧键7循环触发逻辑 if (event == "MOUSE_BUTTON_PRESSED" and arg == 7) then if(tonumber(GetDate("%y%m%d%H%M%S")) > lastPress + 1 ) then i = 1 end PressKey(keys[i]) end if (event == "MOUSE_BUTTON_RELEASED" and arg == 7) then ReleaseKey(keys[i]) i = i + 1 if(i > table.getn(keys)) then i = 1 end lastPress = GetDate("%y%m%d%H%M%S") end end
关键说明:
- 保留第二个脚本的全局变量(
keys、i、lastPress),保证侧键7的循环切换逻辑正常工作 - 将两个脚本中
OnEvent内的所有判断逻辑合并到同一个函数里,彻底避免函数覆盖问题 - 完整保留第一个脚本的日志输出、Profile激活/停用处理,以及侧键6的按键触发逻辑
内容的提问来源于stack exchange,提问作者e10official
相关产品推荐
相关产品推荐

