ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

KeymouseGo 使用指南:鼠标键盘操作录一次,让电脑替你回放任意多遍

KeymouseGo 使用指南:鼠标键盘操作录一次,让电脑替你回放任意多遍

KeymouseGo 使用指南:鼠标键盘操作录一次,让电脑替你回放任意多遍

【免费下载链接】KeymouseGo类似按键精灵的鼠标键盘录制和自动化操作 模拟点击和键入 | automate mouse clicks and keyboard input项目地址: https://gitcode.com/gh_mirrors/ke/KeymouseGo

KeymouseGo 是一款用 Python 写的绿色"精简版按键精灵":把你的鼠标键盘操作原样记下来,再按你设定的次数替你重放。支持 Windows、Linux、macOS,有打包好的可执行文件,不装 Python 也能跑。适合每天有大量单调重复操作的人。

适用场景

  • 如果你正在往网页表单里逐行填同一套数据,可以让它替你一行行输入。
  • 如果你需要在多台机器上点同一套按钮,分发脚本后各机自动回放即可。
  • 如果你要反复跑一遍游戏、教程里的固定操作,把次数设大,去做别的事。
  • 如果你需要长时间定点循环点击,把次数设为0即可无限执行。

快速上手:5 分钟完成第一次录制 🎬

获取程序有两条路:不熟悉 Python 就直接用 release 里的可执行文件,双击KeymouseGo运行;想改代码或自己打包,就从源码起步,需要 Python 3.7 以上:

git clone https://gitcode.com/gh_mirrors/ke/KeymouseGo pip3 install -r requirements-universal.txt # Linux/macOS pip install -r requirements-windows.txt # Windows python3 KeymouseGo.py

装完依赖后,四个动作完成首次录制与回放:

  1. 点界面上的录制按钮,开始记录。
  2. 正常操作电脑:点窗口、点按钮、敲几个字,这些动作都会被记下。
  3. 点结束停止录制,scripts/目录下会多出一个带时间戳的新脚本文件,格式是json5。
  4. 在界面设置执行次数,点启动,电脑就把第 2 步重放一遍。默认F6等同于启动,F9用于中止。

进阶用法

不开界面直接跑脚本

用途:批量跑任务、挂定时任务,连窗口都不用开。

做法:命令行里直接给脚本路径:

./KeymouseGo scripts/0314_1452.txt ./KeymouseGo scripts/0314_1452.txt -rt 3

效果:第二条命令让脚本连跑 3 遍。-rt(全称--runtimes)控制执行次数,填0就是无限循环;回放期间按F9随时叫停。

手改坐标和延迟

用途:微调回放节奏,或把点击位置挪到别处。

做法:脚本是一串有序事件,每个事件四要素:delay(距上一事件的毫秒数)、event_type(EM鼠标、EK键盘、EX输入)、action_type(如mouse left down)、action(坐标或按键值)。比如这条是在屏幕相对坐标 (0.2604, 0.4630) 按下左键:

{type: "event", event_type: "EM", delay: 100, action_type: "mouse left down", action: ["0.2604%", "0.4630%"]}

效果:改一个delay,回放节奏立刻变;坐标写成[-1, -1]则"在鼠标当前位置操作",不用管它现在漂在哪。字段细节见 README.md 的"脚本语法说明"。

插件挂载新能力

用途:给脚本加 OCR 识别、网络请求、条件判断,这些内核本身不提供。

做法:KeymouseGo 是微内核设计,内核只管录制回放。把插件放进plugins/目录,每个插件一个文件夹,内含manifest.json5清单;插件类继承 Plugin/Interface.py 定义的接口,Plugin/Manager.py 启动时扫描目录、解析清单、动态加载,把函数汇入统一注册表,脚本里按名字直接调用。

效果:改完插件重启程序即生效,不用重新编译。

工作原理:换分辨率,为什么落点不偏 🔍

现象:同一个脚本拿到不同分辨率的屏幕上,点击位置基本还是准的。

原理:录制时把像素坐标除以屏幕宽高(x/ScreenWidth、y/ScreenHeight)存成百分比,回放时再乘当前屏幕宽高还原。Windows 端还声明了 DPI 感知,并用归一化坐标(0~65535 区间)移动鼠标,规避大部分缩放漂移。

对你意味着什么:放心换分辨率,但别换缩放。两台机器的"显示 → 缩放"比例不一致(比如 100% 对 125%),点击就会整体跑偏,回放前先把两边对齐。

平台差异靠策略模式消化:录制端 Recorder/UniversalRecorder.py 负责 Linux/macOS,回放端是Event/UniversalEvents.py与 Windows 专属实现,两套类继承同一组接口,上层完全不感知平台。

平台底层方式特点
WindowspyWinhook+ Win32 API钩子抓取,精度高,支持多显示器
Linux / macOSpynput(X11/Wayland 或 Quartz)免驱动,个别环境需指定对应后端

排错手册

症状常见原因解决办法
鼠标事件时有丢失,录制不完整权限不够Windows 用管理员身份、Linux 用 root 身份运行
Linux 上录不了或执行不了pynput后端不对Xorg 用_xorg导入,Wayland 用_uinput,README 打包命令里有现成写法
macOS 启动后闪退缺少辅助功能权限或写权限把程序连同终端加入"辅助功能"白名单;仍闪退就chmod -R 770 ~/.qt_material
换台机器回放,点击偏移两台机器显示缩放不同先对齐两边缩放比例再跑,多数偏移直接解决
回放时鼠标"飞"过去或跟不上录制时鼠标速度超过执行上限放慢操作重新录一遍
自定义热键没生效与系统快捷键撞车Middle是中键、XButton是侧键,设置前先确认无冲突

结语

花一分钟就能验证一遍全流程:录一段 30 秒的日常操作,按F6回放一次,再打开scripts/里刚生成的文件改一个delay重放对比快慢——这是理解它内部机制最快的方式。想扩展能力就从 Plugin/ 目录入手,项目开源,修复和功能建议欢迎提交到 dev 分支,仓库获取方式:git clone https://gitcode.com/gh_mirrors/ke/KeymouseGo。

【免费下载链接】KeymouseGo类似按键精灵的鼠标键盘录制和自动化操作 模拟点击和键入 | automate mouse clicks and keyboard input项目地址: https://gitcode.com/gh_mirrors/ke/KeymouseGo

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进