KeymouseGo 快速上手指南:十分钟跑通跨平台鼠标键盘录制回放工具
【免费下载链接】KeymouseGo类似按键精灵的鼠标键盘录制和自动化操作 模拟点击和键入 | automate mouse clicks and keyboard input项目地址: https://gitcode.com/gh_mirrors/ke/KeymouseGo
如果你每天要在客服系统里重复填同一张表单——点十几个输入框、逐格录入、再按回车保存,这些时间都在被机械点击吃掉。KeymouseGo是一个用 Python 编写的鼠标键盘录制与自动化回放工具:你把操作自己做一遍,之后它按你设定的次数自动重复执行,Windows、Linux、macOS 三个平台都能用,打包版不需要任何运行环境。
典型使用场景:哪些重复劳动能交给 KeymouseGo
如果你的工作里有下面这几类动作,都可以直接外包给脚本:批量数据录入,比如把表格里几百行记录一条条填进网页表单并保存;周期性的循环任务,比如游戏或挂机场景里"打怪—拾取—回城"这类固定动作的反复执行;以及软件发版前后的多机回归验证,同一条界面流程需要在多台设备上反复点查。三者的共同点是操作本身简单且固定,变的只是重复次数——这类工作人工做得越多越不划算,录一遍放 N 遍却几乎零成本。
KeymouseGo 安装与首次录制运行
安装只有两条路:下载 release 里的打包可执行文件,双击即可运行;想改代码的话,装好 Python 3.7+,按 Windows 用 requirements-windows.txt、Linux/macOS 用 requirements-universal.txt 安装依赖后,直接运行 KeymouseGo.py。
首次录制和回放只需要四步:
- 点击录制按钮,然后正常执行你要重复的那套操作
- 点击结束按钮,程序会把这次录制自动存成带时间戳的脚本文件,放在
scripts/目录下 - 在列表中选中该脚本,设置执行次数,填
0表示无限循环 - 点击启动或按热键F6开始回放,按F9可随时中止
上图是 KeymouseGo 主界面,右侧能看到脚本列表、执行次数和录制控制按钮,适合在第一次录制回放时对照查看
不想开界面时,用命令行直接跑脚本更省事:
./KeymouseGo scripts/0314_1452.txt # 回放一次 ./KeymouseGo scripts/0314_1452.txt -rt 3 # 执行 3 次,0 为无限循环原理:KeymouseGo 把每次点击变成四个数字
KeymouseGo 不关心你点的是哪个窗口、哪个程序,它只记录"什么位置、什么动作、隔了多少毫秒"。所有操作都被规约成同一种事件结构,定义在 Event/Event.py 里:
class Event(metaclass=ABCMeta): def __init__(self, content: Dict[str, Any]): for key in ['delay', 'event_type', 'action_type', 'action']: setattr(self, key, content[key]) @abstractmethod def execute(self, thd=None): passdelay是间隔毫秒数,event_type区分鼠标、键盘与文字输入,action_type是"右键按下"这类具体动作,action存坐标或按键参数。这样设计的好处是录制与回放彻底解耦:录制端只负责把动作流翻译成事件序列,回放端按顺序逐个执行。脚本因此是一份可以直接手改的 json5 文本——想调延迟、改坐标、加一步操作,打开文件就能改,完整字段说明见 README.md 的脚本语法一节。坐标填[-1, -1]则表示"在鼠标当前位置执行",适合不依赖绝对位置的按键类动作。
平台差异对照:Windows、Linux、macOS 底层实现
| 平台 | 底层实现 | 注意事项 |
|---|---|---|
| Windows | Win32 API,声明 DPI 感知 | 系统显示缩放(125%、150%)会让逻辑像素与物理像素偏差,录制机与回放机的缩放比例保持一致最稳 |
| Linux | pynput(X11 / Wayland) | 打包时需指定pynput.keyboard._xorg或_uinput等隐藏导入,README 有现成命令 |
| macOS | pynput(Quartz) | 程序须加入"辅助功能"白名单,闪退时可给~/.qt_material加写权限 |
上图是 Windows 的"缩放与布局"设置,它直接决定坐标换算关系,跨机器执行脚本前优先核对这一项
三个平台的体验之所以一致,是因为各平台的事件类继承同一个抽象基类,上层脚本无需感知差异,只有事件采集与执行通路按系统各走各的。
常见问题:坐标偏移、录制不全怎么排查
KeymouseGo 录制的鼠标事件不完整怎么办?部分系统环境下权限不足会丢事件,用管理员身份(Windows)或 root 身份(Linux)运行程序即可解决。
换一台机器点击位置偏移怎么办?坐标在录制时已按"像素除以屏幕宽高"转成百分比(换算逻辑在 Recorder/UniversalRecorder.py 的get_mouse_event中),分辨率差异已经规避,偏移基本都来自两台机器显示缩放不一致,先把缩放调成一样再跑。
macOS 上程序闪退怎么办?先把程序加入"辅助功能"白名单;仍闪退就执行chmod -R 770 ~/.qt_material给该目录写权限。
回放中途想停止脚本怎么办?按F9立即中止,不用重启程序;F6等效于启动按钮,跑批量任务时手放在键盘上即可。
回放时鼠标移动速度跟不上录制怎么办?程序执行速度有上限,录制时鼠标移动过快会导致回放失真,放慢操作速度重新录一遍。
热键设置里 Middle 和 XButton 指什么?Middle是鼠标中键,XButton是鼠标侧键,配置前确认它们没有和系统快捷键冲突。
进阶扩展:KeymouseGo 的插件机制
如果录放之外还想加能力,KeymouseGo 采用微内核设计:核心只做录制与回放,其余功能以插件形式挂载。每个插件是项目根目录plugins下一个带manifest.json5清单的文件夹,继承 Plugin/ 中的接口后,插件注册的函数会被统一收进注册表,脚本里直接调用。改完插件代码重启程序即生效,无需重新编译,开发细节见官方 wiki。
KeymouseGo 用一套极简的事件模型,把"自己做一遍"放大成"做无限遍"。现在就可以下载 release 版录下你第一个 30 秒的脚本,跑通后也可以向 dev 分支提 PR,一起把这个工具箱做扎实。
【免费下载链接】KeymouseGo类似按键精灵的鼠标键盘录制和自动化操作 模拟点击和键入 | automate mouse clicks and keyboard input项目地址: https://gitcode.com/gh_mirrors/ke/KeymouseGo
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考