按一次"复制键",鼠标替你上班:KeymouseGo 免安装鼠标键盘录制与回放完整上手
【免费下载链接】KeymouseGo类似按键精灵的鼠标键盘录制和自动化操作 模拟点击和键入 | automate mouse clicks and keyboard input项目地址: https://gitcode.com/gh_mirrors/ke/KeymouseGo
KeymouseGo 是一款免安装、支持 Windows、Linux、macOS 三大平台的鼠标键盘录制回放自动化工具:操作录一遍,电脑按你设定的次数替你点、替你敲。如果你每天都在重复同一套表单填写、游戏循环或批量点界面,它就是用来省你的。
一|最小上手路径:两条路线任选直接跑
打包版:解压双击,无需任何环境
- 从项目 release 下载打包好的可执行文件并解压;
- 双击目录里的
KeymouseGo即可启动,不装 Python、不配依赖; - 不想开界面也可以直接把脚本路径当参数传给可执行文件,进入命令行模式。
源码路线:自己改、自己打包
- 克隆代码:
git clone https://gitcode.com/gh_mirrors/ke/KeymouseGo; - Python 3.7 以上,Windows 执行
pip install -r requirements-windows.txt,Linux/macOS 执行pip3 install -r requirements-universal.txt; python3 KeymouseGo.py启动;要自己打包可执行文件,README 里已按平台写好 pyinstaller 完整命令。
二|跑通一个真实场景:从"录制"点到自动执行
桌面模式只有四步:
- 点录制按钮,程序开始记录;
- 在目标软件里正常走一遍流程:点按钮、敲字、滚动都行;
- 点结束,录制停止,脚本以
json5格式自动存到scripts/目录,文件名带时间戳; - 设置执行次数(填
0即无限循环),点启动或按默认热键F6,电脑按顺序重放第 2 步。
像复印机的"连拍"按钮:原件只摆一次,要几份就出几份。录完后在命令行直接指定脚本批量跑:
./KeymouseGo scripts/0314_1452.txt ./KeymouseGo scripts/0314_1452.txt -rt 3第一行不开界面执行一遍脚本;-rt 3表示连跑 3 次,改成0就是无限循环。回放期间按F9随时终止。
三|容易被忽略的核心机制:相对坐标与事件四要素
换了分辨率点击为什么不偏
录制时把像素坐标除以屏幕宽高(x/ScreenWidth、y/ScreenHeight)存成相对坐标,回放时再乘当前屏幕宽高还原。这跟地图比例尺是一个道理:比例尺一致,放大缩小都能找到同一个点。Windows 端还额外调SetProcessDPIAware()声明 DPI 感知,并用mouse_event的 0~65535 归一化坐标移动鼠标,压制系统缩放带来的漂移。
铁律:换新机器跑脚本前,先核对两台机器的显示缩放比例一致,这比事后调坐标可靠得多。
事件四要素:改 json5 就是改行为
脚本是事件的有序列表,每个事件四个要素:delay(与上一事件的间隔,毫秒)、event_type(EM鼠标 /EK键盘 /EX输入)、action_type(左键按下、按键抬起这类具体动作)、action(坐标或按键值)。格式是 json5,支持中文注释:
{ scripts: [ // 3 秒后,在屏幕相对坐标 (0.2604, 0.4630) 按下左键 {type: "event", event_type: "EM", delay: 3000, action_type: "mouse left down", action: ["0.2604%", "0.4630%"]}, // 50 毫秒后抬起;[-1, -1] 表示在鼠标当前位置执行 {type: "event", event_type: "EM", delay: 50, action_type: "mouse left up", action: [-1, -1]}, // 1 秒后在当前位置输入一行文字 {type: "event", event_type: "EX", delay: 1000, action_type: "input", action: "你好 world"} ] }读法:第一行在指定位置点一下,第二行原地松手,第三行敲入文字。改任何数字都会立刻改变回放行为,不用重新录制。
铁律:想让"在当前鼠标位置操作",坐标直接写[-1, -1]。
四|平台与环境差异:一张表看懂三系统怎么抓输入
| 平台 | 底层技术 | 特点 |
|---|---|---|
| Windows | Win32 API(win32api + DPI 感知) | 高精度、支持多显示器,用归一化坐标规避缩放漂移 |
| Linux / macOS | pynput 库 | Linux 走 X11/Wayland,macOS 走 Quartz,不同显示栈需不同导入 |
源码按平台切分:录制端是Recorder/WindowsRecorder.py(Windows)与Recorder/UniversalRecorder.py(Linux/macOS),回放端对应Event/WindowsEvents.py和Event/UniversalEvents.py。两套实现继承同一组基类,上层脚本与界面完全不用区分系统。
五|进阶与扩展 🔧:用 plugins/ 目录挂载新能力
内核很小,只管录制和回放,其余能力都以插件挂载。约定:插件放在plugins/目录,每个插件一个文件夹,内含manifest.json5清单(声明入口文件entry与插件类plugin_class)。Plugin/Manager.py启动时扫描目录、动态加载插件类,把register_functions()注册的函数汇入统一注册表,脚本里即可直接调用;改完插件代码重启程序即生效,无需重新打包。
两个常改的配置:
- 热键设置:自定义启动/终止热键,其中
Middle指鼠标中键、XButton指侧键; - 轨迹精度:控制鼠标移动轨迹的录制精度,填
0即不录轨迹。
接口看Plugin/Interface.py,加载逻辑看Plugin/Manager.py,官方 wiki 提供完整的插件开发文档与示例。
六|高频坑 Q&A ❓
问:录制不完整,鼠标事件时有丢失?用管理员身份(Windows)或 root(Linux)运行,多数是权限问题。
问:Linux 的 Xorg / Wayland 环境录不了?给 pynput 指定对应隐藏导入:Xorg 用pynput.keyboard._xorg、pynput.mouse._xorg,Wayland 用_uinput后缀那组。README 的打包命令里已写好现成写法。
问:macOS 启动就闪退?先把程序(打包 exec 则连同终端)加入"辅助功能"白名单;仍闪退再补权限:chmod -R 770 ~/.qt_material。
问:换台机器回放,点击位置偏移?先对比两台机器的显示缩放比例,统一后再跑,多数偏移直接解决。
问:回放时鼠标"飞"过去或跟不上?程序执行速度有上限,录制时鼠标移动过快无法还原,放慢操作重录一遍即可。
问:热键设置好像没生效?Middle是中键、XButton是侧键,设置前先确认没和系统级快捷键撞车;默认F6启动、F9终止。
现在就录一段 30 秒的重复操作,按 F6 让电脑连跑 N 遍;想微调看scripts/里的 json5,想扩展看Plugin/目录与官方 wiki;bug 和建议可提交 PR 到 dev 分支。
【免费下载链接】KeymouseGo类似按键精灵的鼠标键盘录制和自动化操作 模拟点击和键入 | automate mouse clicks and keyboard input项目地址: https://gitcode.com/gh_mirrors/ke/KeymouseGo
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考