跑一次省百回:KeymouseGo 鼠标键盘录制自动化从零到调参完整教程
【免费下载链接】KeymouseGo类似按键精灵的鼠标键盘录制和自动化操作 模拟点击和键入 | automate mouse clicks and keyboard input项目地址: https://gitcode.com/gh_mirrors/ke/KeymouseGo
每天早上打开 OA,把同一套审批流点三遍、每一页点"确认",点到第 500 下手指发麻的时候,该把活交给程序了。KeymouseGo 是一款鼠标键盘录制工具:你的操作交代一遍,它替你按次数重放。Windows、Linux、macOS 一套内核通用,打包版解压即用。它像一支语音备忘录——你把"话"录进去,它原样放出来;这支备忘录记的不是声音,是你的鼠标和键盘。
安装与启动:打包版和源码版两条路径
打包版最短路径:从 release 下载对应系统的可执行文件,解压后双击KeymouseGo,十几秒内你就能看到主界面,直接开始录。
源码版适合要改代码或自己打包的人,Python 3.7+ 即可:
git clone https://gitcode.com/gh_mirrors/ke/KeymouseGo pip3 install -r requirements-universal.txt # Windows 换 requirements-windows.txt python KeymouseGo.py→ 装完就能录,下一节走第一个完整闭环。
第一次鼠标键盘录制:录、停、放四步闭环
界面模式下只有四个动作,照做就能跑通:
- 点录制,程序开始接管你的输入,状态栏提示录制中;
- 正常干活——把三页审批依次点完,这段动作被原样记下;
- 点结束,左侧列表里出现刚记录的脚本,文件名带时间戳;
- 在次数框里填
3,点启动,光标自己跑完三遍流程。
中途想叫停,随时按F9。
录完的产物落在scripts/目录,json5文本格式,记事本就能改:动一个坐标、调一个延迟,保存后再回放验证。不想开界面时,命令行直接回放:
./KeymouseGo scripts/0314_1452.txt -rt 3 # -rt 0 为无限循环→ 脚本为什么敢跨机器用?下一节讲它存坐标的门道。
读懂脚本:相对坐标与 json5 事件格式
这节解决"脚本里的数字都是什么、改哪一处"。每个事件四个要素:delay(距上一事件的毫秒数)、event_type(EM 鼠标 / EK 键盘 / EX 输入)、action_type(具体动作)、action(坐标或按键)。片段如下:
{ scripts: [ // 100ms 后,在相对坐标 (0.2604, 0.4630) 按下鼠标左键 {type: "event", event_type: "EM", delay: 100, action_type: "mouse left down", action: ["0.2604%", "0.4630%"]}, // 100ms 后,在相对坐标 (0.3125, 0.5556) 抬起左键 {type: "event", event_type: "EM", delay: 100, action_type: "mouse left up", action: ["0.3125%", "0.5556%"]}, // [-1, -1] 约定为"鼠标原地不动",在当前光标处执行 {type: "event", event_type: "EM", delay: 50, action_type: "mouse middle down", action: [-1, -1]}, // 100ms 后在当前焦点输入一段文字 {type: "event", event_type: "EX", delay: 100, action_type: "input", action: "已确认"} ] }坐标是百分比而不是像素:录制时把像素除以屏幕宽高换算(x/ScreenWidth、y/ScreenHeight),回放时再乘当前屏幕尺寸还原。这样设计,1080p 机器录的脚本拿到 2K 屏上照样落点准确。
→ 分辨率解决了,换机器还有别的变量吗?有。
换机换分辨率:显示缩放一致防坐标偏移
同一脚本换台电脑,最常翻车的就是"点偏了"。三大平台的底层实现不同:
| 平台 | 底层抓取/回放方式 | 你要留意的变量 |
|---|---|---|
| Windows | Win32 钩子,DPI 感知 | 显示缩放比例 |
| Linux | pynput(X11 或 Wayland) | 显示服务器选型 |
| macOS | pynput(Quartz 框架) | 辅助功能权限 |
Windows 端通过 DPI 感知声明加归一化坐标模拟,能消化掉大部分缩放漂移;但铁律不变:换新机器回放前,先确认录制机与回放机的显示缩放比例一致,这是防偏移最稳的一招。
→ 想让脚本不只是"点一点",看下一节的扩展口。
挂载插件:plugins 目录是唯一的扩展入口
内核只管录制和回放,其余能力全部走插件:plugins/下每个文件夹是一个插件,内含一份manifest.json5清单;管理器启动时扫描目录、解析清单、动态加载插件类,把注册的函数汇入统一注册表,脚本里即可直接调用。开发时继承 插件接口定义 里的基类、实现register_functions,加载逻辑在 插件管理器。改完插件代码重启程序即生效,想加 OCR、网络请求这类能力从这里入手。
→ 上手之后真正卡人的,是下面这些坑。
录制回放高频踩坑快问快答
录制阶段
问:录制漏事件,甚至完全不录?答:权限不够。Windows 用管理员身份、Linux 用 root 身份运行 KeymouseGo,基本就录全了。
问:Linux 以 root 运行仍录不到?答:看你在 Xorg 还是 Wayland——两套显示栈对应pynput的不同后端,README 的打包命令里给了现成的--hidden-import写法,照抄即可。
回放与跨机阶段
问:换台机器回放,点击整体偏移?答:先对齐两台的显示缩放比例再跑,多数偏移就此消失。
问:回放时鼠标"飞"过去或跟不上节奏?答:程序回放速度有上限,录得太快还原不了;放慢操作重录一遍即可。
问:想在当前光标位置点击,不想指定坐标?答:把坐标写成[-1, -1],脚本就在原地执行。
问:热键设置里Middle和XButton是什么?答:鼠标中键和鼠标侧键。配置前确认没和系统级快捷键撞车,否则"设了不生效"。
问:macOS 一启动就闪退?答:把程序(用打包版的话连同终端)加入"辅助功能"白名单;仍闪退就给~/.qt_material补写权限:chmod -R 770 ~/.qt_material。
现在就挑一段每天必做的 30 秒重复操作,按录制记下来,设好次数按F6放一遍。然后打开scripts/里刚生成的脚本,改一个坐标、调一个延迟再回放——这是理解它内部机制最快的方式。修 bug、提需求,直接提交到 dev 分支即可。
【免费下载链接】KeymouseGo类似按键精灵的鼠标键盘录制和自动化操作 模拟点击和键入 | automate mouse clicks and keyboard input项目地址: https://gitcode.com/gh_mirrors/ke/KeymouseGo
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考