news 2026/8/14 10:48:28

如何用 KeymouseGo 完成鼠标键盘自动化录制与回放:跨平台按键精灵的完整上手指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
如何用 KeymouseGo 完成鼠标键盘自动化录制与回放:跨平台按键精灵的完整上手指南

如何用 KeymouseGo 完成鼠标键盘自动化录制与回放:跨平台按键精灵的完整上手指南

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

KeymouseGo 是一款开源免费的鼠标键盘录制与自动化执行工具,支持 Windows、Linux、macOS 三大平台,可以像"按键精灵"一样把重复操作录下来、一键回放,还能设置执行次数、编辑 JSON5 脚本实现流程控制。本文将从实际使用痛点出发,带你一步步了解它的安装方法、录制流程、脚本语法、坐标适配原理与插件扩展能力。

概要速览:这篇文章适合所有被"机械重复操作"困扰的用户,无论是填表单、刷任务还是做自动化测试。你会了解到 KeymouseGo 的核心功能与使用场景、三种安装与运行方式、录制→回放的基础流程、百分比坐标如何解决不同分辨率下的点偏问题、JSON5 脚本怎么写、以及插件与流程控制如何把简单录制升级成真正的自动化程序。

先聊聊那个烦人的场景

你有没有遇到过这样的时刻:为了完成某个任务,需要在同一位置反复点击几十次、在表单里一次次粘贴同样的内容、或者在游戏里重复某套操作?人来做这种事,又慢又容易出错,注意力一分散就点错了。

传统方案里,AutoHotkey 之类工具很强大,但学习曲线陡峭,脚本语言晦涩,还基本绑死在 Windows 上;换个系统,之前的积累全部作废。Selenium 这类框架则只擅长网页自动化,桌面软件无能为力。

KeymouseGo 的思路非常朴素:你手动做一遍,它记录下来,然后替你无限循环地做下去。它把"录制"和"回放"这两件事做到极致简单,同时保留了对底层脚本、插件、流程控制的完整访问权,让你既能无脑使用,也能深度定制。

一、五分钟上手:安装与三种运行方式

1. 直接下载可执行文件(零门槛)

项目用 Python 编写,官方打包了可直接运行的二进制版本。不想装任何环境的用户,下载 release 后双击KeymouseGo即可启动,绿色精简,无需配置。

2. 源码运行(开发者推荐)

如果你想跑源码或做二次开发,环境准备只需四步:

# 1. 安装 Python3(3.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-import(X11 传pynput.keyboard._xorg,Wayland 传_uinput),macOS 则传_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 流程里。

二、核心使用流程:录一遍,剩下的交给电脑

图形界面的操作逻辑只有三步,任何人都能上手:

  1. 点"开始录制",然后正常操作电脑——点击鼠标、敲键盘、滚动滚轮,动作都被一一记录。可选是否记录鼠标移动轨迹,移动轨迹的采样精度也可调,数值越小越精细、但脚本体积也越大(Recorder/globals.py 中默认 200ms 采样间隔)。
  2. 点"暂停录制/结束",一份新脚本自动生成在scripts目录下,文件名带时间戳。
  3. 在列表里选中脚本,点"启动",程序按原样复刻你的操作。

几个高频设置项值得记住:

  • 执行次数:填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 wheel
EK键盘事件key down、key up
EX扩展事件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),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/14 10:45:55

SQL注入实战:从sqli-labs Less-1入门Web安全攻防

1. 从靶场到实战:为什么SQL注入依然是Web安全的“必修课”如果你刚接触网络安全,或者想从CTF(Capture The Flag)靶场入手,那么“sqli-labs”这个项目几乎是绕不开的名字。它是一个专门为学习SQL注入攻击与防御技术而设…

作者头像 李华
网站建设 2026/8/14 10:45:55

加密锁C2V与V2C文件操作指南:从授权原理到故障排查

1. 项目概述:当加密锁遇上C2V与更新文件 最近在折腾一个老项目的授权迁移,核心就是处理加密锁的C2V文件和更新文件。如果你也接触过类似Sentinel、HASP这类硬件加密锁,或者被VisionMaster这类工业软件的授权更新失败搞得焦头烂额,…

作者头像 李华
网站建设 2026/8/14 10:38:32

微信聊天记录导出全攻略:用WeChatMsg把对话永久保存为HTML、Word和CSV

微信聊天记录导出全攻略:用WeChatMsg把对话永久保存为HTML、Word和CSV 【免费下载链接】WeChatMsg 提取微信聊天记录,将其导出成HTML、Word、CSV文档永久保存,对聊天记录进行分析生成年度聊天报告 项目地址: https://gitcode.com/GitHub_Tr…

作者头像 李华