You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在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

关键修改点说明

  1. 禁用/恢复鼠标:使用EnableMouse(false)禁用物理鼠标输入,脚本结束或终止时调用EnableMouse(true)恢复(如果你的宏工具API不同,替换成对应函数即可,比如BlockMouseInput(true))
  2. 终止快捷键:监听KEY_PRESSED事件,判断键码(F12对应键码123,可根据工具键码表修改),按下时立即终止脚本并恢复鼠标
  3. 终止检查:自动化操作的每一步前都加if not isScriptRunning then return end,确保按下终止键后脚本立刻停止后续操作
  4. 状态标记:用全局变量isScriptRunning跟踪脚本运行状态,避免重复触发和错误恢复鼠标

内容的提问来源于stack exchange,提问作者Todd Harris

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 16:25:22