如何在Lua脚本中禁用物理鼠标移动并添加终止快捷键
Lua脚本功能增强实现方案
针对你需要的两个功能,直接给修改后的完整脚本及说明:
功能说明
- 禁用物理鼠标:脚本启动时立刻屏蔽物理鼠标输入,避免手动移动干扰自动化操作,脚本结束/终止时自动恢复
- 终止快捷键:设置
F12为终止键,运行期间随时按下可立即停止脚本并恢复鼠标(键位可自行调整)
修改后的完整脚本
-- 全局变量标记脚本运行状态 local isScriptRunning = false -- 终止快捷键监听(F12,键码可根据工具API调整) if event == "KEY_PRESSED" and arg == 123 then if isScriptRunning then -- 恢复物理鼠标 EnableMouse(true) isScriptRunning = false OutputLogMessage("脚本已终止,鼠标已恢复\n") end return end -- 原触发条件(保留你的初始触发逻辑) if event == "G_PRESSED" and arg == 4 and GetMKeyState("kb") == 3 then -- 标记脚本开始运行 isScriptRunning = true -- 禁用物理鼠标输入 EnableMouse(false) OutputLogMessage("脚本启动,物理鼠标已禁用\n") -- 自动化操作函数,每步加终止检查 local function runAutomation() -- 第一步:移动到目标点并右键 if not isScriptRunning then return end MoveMouseTo(36165, 57821) Sleep(100) PressMouseButton(3) ReleaseMouseButton(3) Sleep(100) -- 第二步:移动到目标点+Alt+X+左键 if not isScriptRunning then return end MoveMouseTo(36131, 59461) Sleep(100) PressKey("lalt") Sleep(100) PressKey("X") Sleep(100) ReleaseKey("lalt") ReleaseKey("X") PressMouseButton(1) ReleaseMouseButton(1) Sleep(250) -- 第三步:移动到目标点左键 if not isScriptRunning then return end MoveMouseTo(38932, 56060) Sleep(2000) PressMouseButton(1) ReleaseMouseButton(1) -- 第四步:移动到目标点左键 if not isScriptRunning then return end MoveMouseTo(4166, 1518) Sleep(200) PressMouseButton(1) ReleaseMouseButton(1) -- 第五步:移动到目标点右键 if not isScriptRunning then return end MoveMouseTo(38932, 56060) Sleep(100) PressMouseButton(3) ReleaseMouseButton(3) Sleep(100) -- 第六步:移动到目标点+Alt+X if not isScriptRunning then return end MoveMouseTo(38590, 57882) Sleep(100) PressKey("lalt") Sleep(100) PressKey("X") Sleep(100) ReleaseKey("lalt") ReleaseKey("X") -- 脚本正常结束,恢复鼠标 EnableMouse(true) isScriptRunning = false OutputLogMessage("脚本正常结束,鼠标已恢复\n") end -- 启动自动化操作 runAutomation() end
关键修改点说明
- 禁用/恢复鼠标:使用
EnableMouse(false)禁用物理鼠标输入,脚本结束或终止时调用EnableMouse(true)恢复(如果你的宏工具API不同,替换成对应函数即可,比如BlockMouseInput(true)) - 终止快捷键:监听
KEY_PRESSED事件,判断键码(F12对应键码123,可根据工具键码表修改),按下时立即终止脚本并恢复鼠标 - 终止检查:自动化操作的每一步前都加
if not isScriptRunning then return end,确保按下终止键后脚本立刻停止后续操作 - 状态标记:用全局变量
isScriptRunning跟踪脚本运行状态,避免重复触发和错误恢复鼠标
内容的提问来源于stack exchange,提问作者Todd Harris
相关产品推荐
相关产品推荐

