
如何用 KeymouseGo 完成鼠标键盘自动化录制与回放跨平台按键精灵的完整上手指南【免费下载链接】KeymouseGo类似按键精灵的鼠标键盘录制和自动化操作 模拟点击和键入 | automate mouse clicks and keyboard input项目地址: https://gitcode.com/gh_mirrors/ke/KeymouseGoKeymouseGo 是一款开源免费的鼠标键盘录制与自动化执行工具支持 Windows、Linux、macOS 三大平台可以像按键精灵一样把重复操作录下来、一键回放还能设置执行次数、编辑 JSON5 脚本实现流程控制。本文将从实际使用痛点出发带你一步步了解它的安装方法、录制流程、脚本语法、坐标适配原理与插件扩展能力。概要速览这篇文章适合所有被机械重复操作困扰的用户无论是填表单、刷任务还是做自动化测试。你会了解到 KeymouseGo 的核心功能与使用场景、三种安装与运行方式、录制→回放的基础流程、百分比坐标如何解决不同分辨率下的点偏问题、JSON5 脚本怎么写、以及插件与流程控制如何把简单录制升级成真正的自动化程序。先聊聊那个烦人的场景你有没有遇到过这样的时刻为了完成某个任务需要在同一位置反复点击几十次、在表单里一次次粘贴同样的内容、或者在游戏里重复某套操作人来做这种事又慢又容易出错注意力一分散就点错了。传统方案里AutoHotkey 之类工具很强大但学习曲线陡峭脚本语言晦涩还基本绑死在 Windows 上换个系统之前的积累全部作废。Selenium 这类框架则只擅长网页自动化桌面软件无能为力。KeymouseGo 的思路非常朴素你手动做一遍它记录下来然后替你无限循环地做下去。它把录制和回放这两件事做到极致简单同时保留了对底层脚本、插件、流程控制的完整访问权让你既能无脑使用也能深度定制。一、五分钟上手安装与三种运行方式1. 直接下载可执行文件零门槛项目用 Python 编写官方打包了可直接运行的二进制版本。不想装任何环境的用户下载 release 后双击KeymouseGo即可启动绿色精简无需配置。2. 源码运行开发者推荐如果你想跑源码或做二次开发环境准备只需四步# 1. 安装 Python33.7 及以上 # 2. 安装依赖 pip install -r requirements-windows.txt # Windows pip3 install -r requirements-universal.txt # Linux / macOS # 3. 安装打包工具 pip install pyinstaller然后就能直接python KeymouseGo.py启动或用 PyInstaller 打包成独立可执行文件。Linux 下需要根据桌面协议补--hidden-importX11 传pynput.keyboard._xorgWayland 传_uinputmacOS 则传_darwin这一点在源码仓库的 buildcmd.txt 与 README 中有完整命令可供参考。3. 命令行模式脚本化不想开图形界面支持直接传脚本路径执行./KeymouseGo scripts/0314_1452.txt # 跑一遍 ./KeymouseGo scripts/0314_1452.txt -rt 3 # 连续跑 3 遍 ./KeymouseGo scripts/0314_1452.txt --runtimes 3命令行模式下默认按F9可随时中断很适合嵌入到批处理或 CI 流程里。二、核心使用流程录一遍剩下的交给电脑图形界面的操作逻辑只有三步任何人都能上手点开始录制然后正常操作电脑——点击鼠标、敲键盘、滚动滚轮动作都被一一记录。可选是否记录鼠标移动轨迹移动轨迹的采样精度也可调数值越小越精细、但脚本体积也越大Recorder/globals.py 中默认 200ms 采样间隔。点暂停录制/结束一份新脚本自动生成在scripts目录下文件名带时间戳。在列表里选中脚本点启动程序按原样复刻你的操作。几个高频设置项值得记住执行次数填0表示无限循环适合挂机类任务填 N 则精确执行 N 遍每遍循环次数会在状态栏实时显示。默认热键F6等价于启动按钮F9停止正在运行的脚本。录制时如果出现鼠标事件丢失通常是因为权限不足Windows 下请以管理员身份、Linux 下用 root 运行部分环境还需要参考 pynput 的权限说明。声音提示开始与结束时会播放assets/sounds/下的提示音运行状态一目了然。三、脚本语言JSON5 格式的事件流水账每次录制生成的脚本本质是一个 JSON5 文件最内层每个对象代表一个事件。事件包含四个核心字段delay执行前等待的毫秒数、event_type事件类型、action_type动作类型、action坐标或键值。事件类型共三类正好覆盖所有桌面操作类型含义典型动作EM鼠标事件mouse left down / up、mouse right down / up、mouse move、mouse wheelEK键盘事件key down、key upEX扩展事件input直接输入一段文字看一个真实脚本片段感受下它的可读性{ scripts: [ // 启动 3 秒后在屏幕相对坐标 (0.05208, 0.1852) 即 (100,200) 处按下鼠标右键 {type: event, event_type: EM, delay: 3000, action_type: mouse right down, action: [0.05208%, 0.1852%]}, // 50ms 后在原地抬起右键坐标为 [-1, -1] 表示鼠标保持当前位置 {type: event, event_type: EM, delay: 50, action_type: mouse right up, action: [-1, -1]}, // 1 秒后按下 F 键再 50ms 后抬起 {type: event, event_type: EK, delay: 1000, action_type: key down, action: [70, F, 0]}, {type: event, event_type: EK, delay: 50, action_type: key up, action: [70, F, 0]}, // 在 (500,500) 按下左键拖到 (500,600) 再抬起模拟一次拖拽 {type: event, event_type: EM, delay: 100, action_type: mouse left down, action: [0.2604%, 0.4630%]}, {type: event, event_type: EM, delay: 100, action_type: mouse move, action: [0.2604%, 0.5556%]}, {type: event, event_type: EM, delay: 100, action_type: mouse left up, action: [0.3125%, 0.5556%]}, // 在当前位置直接输入文字 {type: event, event_type: EX, delay: 100, action_type: input, action: 你好 world} ] }脚本允许有注释JSON5 特性所以完全可以直接手写、复制、改参数。文件编码优先 UTF-8兼容 GBK解析失败时会有清晰报错Util/Parser.py 中会提示无法解析脚本请检查是否存在语法问题。四、百分比坐标彻底告别换个屏幕就点偏这是 KeymouseGo 最值得称道的设计之一。传统自动化脚本记录的是绝对像素坐标在 1920×1080 屏幕上录制的点击位置是 (960, 540)换到 1366×768 的笔记本上这个点就偏到屏幕外了。更麻烦的是 Windows 的显示缩放——同一块屏幕缩放 100% 和 125% 时同样的百分比位置对应的像素完全不同。KeymouseGo 的解法是录制时就把坐标换算成屏幕宽高的百分比回放时再按当前屏幕尺寸还原。脚本里看到的是0.2604%这样的小数执行引擎在Event/UniversalEvents.py中把它乘上当前屏幕的SW/SH得到真实像素。于是同一份脚本在 1080p 显示器上录的拿到 2K 屏照样点得准换台不同缩放比例的电脑位置依旧正确配合[-1, -1]的当前鼠标位置约定还能实现只操作相对位置的动作。当然它也保留了绝对坐标兼容action 里直接写整数就按绝对像素处理旧版本录制的老脚本依旧能跑。值得一提的是Windows 版本还考虑了多显示器场景Event/init.py 中有多显示器标志位坐标处理能力比一般小工具完整得多。五、从录制回放到自动化程序流程控制与插件单纯的录制回放解决不了条件判断和循环问题。KeymouseGo 的脚本解析器Util/Parser.py把脚本文件解析成一张单向链表式的流程图每个节点指向下一个节点由此支撑起一套轻量级控制结构sequence顺序执行一段子事件序列if / else调用插件函数作为判断条件结果为真走do分支为假走else分支goto跳转到任意label标记的事件实现循环subroutine引用并运行另一个脚本文件实现脚本复用。插件系统微内核式的扩展能力插件机制让 KeymouseGo 从录制工具升级为可编程自动化框架。一个插件就是一个目录核心是manifest.json5清单文件声明入口与插件类名代码只需实现Plugin/Interface.py里的接口class PluginInterface: def __init__(self, manifest): self.meta PluginMeta(manifest) def register_functions(self): # 注册可供脚本调用的函数 pass def register_record_functions(self): # 注册录制阶段的钩子 pass插件管理器Plugin/Manager.py启动时会扫描plugins目录、读取每个插件的 manifest、动态加载类并收集注册函数之后脚本里用call: [函数名]就能在事件节点上挂接插件逻辑if条件的judge字段同样调用插件函数。图像识别、OCR、网络请求、数据读写……这些都能以插件形态接入热插拔、重启即生效。六、执行引擎稳定回放的细节功夫回放看似简单但要做到不丢帧、能暂停、可中断执行引擎做了不少设计独立线程执行脚本跑在 QThread 子线程里UI 不卡死主界面可以随时响应操作RunScriptClass.py。精确延时延时基于QWaitCondition的可中断等待实现而不是简单的time.sleep这样暂停/恢复指令能立刻生效无需等当前事件超时。暂停恢复机制暂停时线程挂起恢复时一次性唤醒脚本从暂停点继续不会重头再来。异常兜底解析失败会自动回退到旧版解析器兼容老格式脚本运行异常会写入日志并给出中文提示而不是静默崩溃。循环计数GUI 与命令行两种运行模式共享同一套事件执行逻辑保证行为一致。七、实战建议与注意事项权限先行Linux/macOS 下录制丢失事件先检查是否以 root 或管理员身份运行macOS 还需把程序以及命令行模式下的终端加入辅助功能白名单否则系统会拦截模拟输入。若程序闪退可尝试给~/.qt_material目录放开写权限。速度上限程序自身的输入速度有上限录制时鼠标移动过快回放可能达不到预期速度录制时动作放缓一些更稳妥。录制精度不需要轨迹时建议关闭移动轨迹录制脚本体积和回放压力都会小很多。热键冲突默认 F6/F9 若与业务软件冲突可在界面中重新指定鼠标中键显示为Middle、侧键为XButton。权限与合规录制内容可能涉及账号密码等敏感信息脚本文件注意保管别随手提交到公开仓库。八、它在哪些场景真正发光重复性数据录入财务、电商、客服场景下批量填表、生成报表录一次脚本无限复用配合EX输入事件可以整段粘贴文本。自动化测试作为端到端 UI 测试的执行器接入 CI/CD同一脚本在不同系统的测试机上跑顺便验证跨平台一致性命令行模式 -rt参数天然适合脚本化调度。个人效率提升开机自启、定时任务配合让电脑替你完成签到、清理、备份等日常琐事。九、未来方向与生态项目正处于活跃演进期。从代码里能看出几个清晰的趋势脚本格式从简单的数组演变为支持流程控制的 JSON5 对象解析器也已为新格式预留了标签映射与跳转能力插件系统从注释掉的旧接口record_functions 等持续迭代说明团队在不断完善扩展边界。社区维护者还获得了 JetBrains 的免费开发工具授权IDE 工具链支持一直是项目生态的一部分。长远来看事件抽象 可编辑脚本 插件化的组合天然适合向更智能的方向演进用机器学习分析操作模式自动生成脚本、接入图像识别做视觉锚点定位、甚至通过云服务把自动化任务分发到多台机器。这些想象空间都建立在当前这套干净、解耦的架构之上。结语KeymouseGo 的价值在于它把简单和强大这对矛盾调和得很好小白用户五分钟就能跑通录制回放资深用户又能通过 JSON5 脚本、流程控制、插件接口玩出各种花样。跨平台、百分比坐标、事件驱动、微内核扩展这些设计让它在同类工具中独树一帜。如果你手头正有一堆重复操作想甩掉不妨从录制一遍开始——剩下的交给 KeymouseGo。【免费下载链接】KeymouseGo类似按键精灵的鼠标键盘录制和自动化操作 模拟点击和键入 | automate mouse clicks and keyboard input项目地址: https://gitcode.com/gh_mirrors/ke/KeymouseGo创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考