类似按键精灵的鼠标键盘录制和自动化操作 模拟点击和键入 | automate mouse clicks and keyboard input。
http://taojy123.github.io/KeymouseGo
功能:记录用户的鼠标键盘操作,通过触发按钮自动执行之前记录的操作,可设定执行的次数,可以理解为 精简绿色版 的 按键精灵。
用途:在进行某些操作简单、单调重复的工作时,使用本软件就可以很省力了。自己只要做一遍,然后接下来就让电脑来做。
该软件通过 Python 语言编写,已编译为 windows 平台可执行文件,未安装 Python 的用户可直接下载 release 版本 https://github.com/taojy123/KeymouseGo/releases ,直接点击 KeymouseGo.exe 运行。
关于作者:
我的个人站点 tslow.cn 整理并罗列了一些 个人项目 和 小工具 合集。
你可以在 简书 浏览我最新发布的文章,还可以在 B站 观看我的技术分享和生活纪实。
我的邮箱: taojy123@163.com
基本操作:
1、点击 录制 按钮,开始录制。
2、在计算机上进行任意操作,如点击鼠标、键盘输入,这部分的动作会被记录下来。
3、点击 结束 按钮,结束录制。
4、点击 启动 按钮,计算机会重复执行一遍第2步中所录制的动作。
提示:
1、可设置脚本重复执行的次数,如果为 0 即为无限循环。
2、默认启动热键为 F6,功能等同于 启动 按钮;默认终止热键为 F9,按下后将会停止正在运行的脚本。
3、录制时只记录鼠标点击动作和键盘动作,不记录鼠标移动轨迹。
4、每次录制结束后都会在 scripts 目前下生成一个新的脚本文件。
5、运行前可以在列表中选择一个需要执行的脚本。
6、scripts 下的脚本文件内容可以修改,修改时可参考如下所述 脚本格式说明。
部分系统环境中,可能出现无法录制完整的鼠标事件的情况,请以管理员身份运行此工具即可正常使用。
脚本语法说明:
演示屏幕分辨率为
1920 * 1080
[
[3000, "EM", "mouse right down", [0.052083333333333336, 0.18518518518518517]], // 开始运行 `3000ms` 后,在屏幕相对坐标 `(0.052083333333333336, 0.18518518518518517)`即 `(100,200)` 处 `按下鼠标右键`;
[50, "EM", "mouse right up", [0.052083333333333336, 0.18518518518518517]], // 等待 `50ms` 后在相同位置 `抬起鼠标右键`;
[1000, "EK", "key down", (70, 'F', 0)], // 等待 `1000ms` 后 `按下f键`;
[50, "EK", "key up", (70, 'F', 0)], // 等待 `50ms` 后 `抬起f键`;
[100, "EM", "mouse left down", [0.2604166666666667, 0.46296296296296297]], // 等待 `100ms` 后,在屏幕相对坐标 `(0.2604166666666667, 0.46296296296296297)`即 `(500, 500)` 处 `按下鼠标左键`;
[100, "EM", "mouse move", [0.2604166666666667, 0.5555555555555556]], // 等待 `100ms` 后,鼠标移动至相对坐标 `(0.2604166666666667, 0.5555555555555556)`即 `(500, 600)` 位置;
[100, "EM", "mouse left down", [0.3125, 0.5555555555555556]], // 等待 `100ms` 后,在屏幕相对坐标 `(0.3125, 0.5555555555555556)`即 `(600, 600)` 处 `抬起鼠标左键`;
[100, "EX", "input", "你好 world"], // 等待 `100ms` 后,在当前位置输入 `你好 world` 文字。
]
脚本为 json 格式,每一行代表一次动作:
- 每行的第 1 个元素表示时间间隔,指的是本次动作与上一次动作之间相隔的时间,单位为毫秒。
- 每行的第 2 个元素表示鼠标动作或是键盘动作:
EM为鼠标,EK为键盘,EX为其他拓展动作。 - 每行的第 3 个元素表示动作的类型:
mouse left down为鼠标左键按下,mouse left up为鼠标左键抬起,mouse right down为鼠标右键按下,mouse right up为鼠标右键抬起,mouse middle down为鼠标中键按下,mouse middle up为鼠标中键抬起,mouse wheel up为鼠标滚轮上滑,mouse wheel down为鼠标滚轮下滑,key down为键盘按键按下,key up为键盘按键抬起,mouse move为鼠标滑过,input输入文字。
- 每行的第 4 个元素表示具体的动作参数
- 当为鼠标动作时,由两个子元素构成,分别为鼠标所在的屏幕位置的横纵坐标,
- 当为键盘动作时,由三个子元素构成,分别是(按键编号, 按键名, 拓展标记),
- 当为输入文字动作时,为要输入的文字内容。
- 每行
//后的部分为注释内容。 - 修改时请严格遵守格式,否则可能导致脚本无法运行,建议修改前先备份一下。
使用命令行运行:
直接运行指定脚本:
> KeymouseGo.exe scripts/0314_1452.txt
运行指定脚本3次:
> KeymouseGo.exe scripts/0314_1452.txt 3from https://github.com/taojy123/KeymouseGo
-----------
1. 安装 Python3
2. pip install -r requirements-windows.txt
3. pip install pyinstaller
4. pyinstaller -F -w --add-data "./assets;assets" KeymouseGo.py
- Linux或Mac
1. 安装 Python3
2. pip3 install -r requirements-universal.txt
3. pip3 install pyinstaller
4. pyinstaller -F -w --add-data "./assets:assets" KeymouseGo.py
1、点击 录制 按钮,开始录制。
2、在计算机上进行任意操作,如点击鼠标、键盘输入,这部分的动作会被记录下来。
3、点击 结束 按钮,结束录制。
4、点击 启动 按钮,计算机会重复执行一遍第2步中所录制的动作。
直接运行指定脚本:
> ./KeymouseGo scripts/0314_1452.txt
运行指定脚本3次:
> ./KeymouseGo scripts/0314_1452.txt -rt 3
> ./KeymouseGo scripts/0314_1452.txt --runtimes 3
以200%的速度运行指定脚本:
> ./KeymouseGo scripts/0314_1452.txt -sp 200
> ./KeymouseGo scripts/0314_1452.txt --speed 200
加载自定义扩展MyExtension运行指定脚本:
> ./KeymouseGo scripts/0314_1452.txt -m MyExtension
> ./KeymouseGo scripts/0314_1452.txt --module MyExtension
1、可设置脚本重复执行的次数,如果为 0 即为无限循环。
2、默认启动热键为 F6,功能等同于 启动 按钮;默认终止热键为 F9,按下后将会停止正在运行的脚本。
3、录制时只记录鼠标点击动作和键盘动作,不记录鼠标移动轨迹。
4、每次录制结束后都会在 scripts 目前下生成一个新的脚本文件。
5、运行前可以在列表中选择一个需要执行的脚本。
6、scripts 下的脚本文件内容可以修改,修改时可参考如下所述 脚本格式说明。
7、热键设置中的Middle指代鼠标中键,XButton指代鼠标侧键
8、由于程序速度受限,当输入的鼠标速度大于一定值时脚本将无法以预期的输入速度执行
部分系统环境中,可能出现无法录制完整的鼠标事件的情况,请以管理员身份/root身份运行此工具即可正常使用。
使用Mac的用户,需要确保程序在辅助功能白名单,如果使用打包的exec文件,则还需要确保终端也在辅助功能白名单。 如果app程序闪退,请尝试给予~/.qt_material目录下文件的写权限:
chmod -R 770 ~/.qt_material演示屏幕分辨率为
1920 * 1080
[
[3000, "EM", "mouse right down", ["0.05208%", "0.1852%"]], // 开始运行 `3000ms` 后,在屏幕相对坐标 `(0.05208, 0.1852)`即 `(100,200)` 处 `按下鼠标右键`;
[50, "EM", "mouse right up", ["0.05208%", "0.1852%"]], // 等待 `50ms` 后在相同位置 `抬起鼠标右键`;
[1000, "EK", "key down", [70, "F", 0]], // 等待 `1000ms` 后 `按下f键`;
[50, "EK", "key up", [70, "F", 0]], // 等待 `50ms` 后 `抬起f键`;
[100, "EM", "mouse left down", ["0.2604%", "0.4630%"]], // 等待 `100ms` 后,在屏幕相对坐标 `(0.2604, 0.4630)`即 `(500, 500)` 处 `按下鼠标左键`;
[100, "EM", "mouse move", ["0.2604%", "0.5556%"]], // 等待 `100ms` 后,鼠标移动至相对坐标 `(0.2604, 0.5556)`即 `(500, 600)` 位置;
[100, "EM", "mouse left up", ["0.3125%", "0.5556%"]], // 等待 `100ms` 后,在屏幕相对坐标 `(0.3125, 0.5556)`即 `(600, 600)` 处 `抬起鼠标左键`;
[100, "EX", "input", "你好 world"], // 等待 `100ms` 后,在当前位置输入 `你好 world` 文字。
]
脚本为 json 格式,每一行代表一次动作:
- 每行的第 1 个元素表示时间间隔,指的是本次动作与上一次动作之间相隔的时间,单位为毫秒。
- 每行的第 2 个元素表示鼠标动作或是键盘动作:
EM为鼠标,EK为键盘,EX为其他拓展动作。 - 每行的第 3 个元素表示动作的类型:
mouse left down为鼠标左键按下,mouse left up为鼠标左键抬起,mouse right down为鼠标右键按下,mouse right up为鼠标右键抬起,mouse middle down为鼠标中键按下,mouse middle up为鼠标中键抬起,mouse wheel up为鼠标滚轮上滑,mouse wheel down为鼠标滚轮下滑,key down为键盘按键按下,key up为键盘按键抬起,mouse move为鼠标滑过,input输入文字。
- 每行的第 4 个元素表示具体的动作参数
- 当为鼠标动作时,由两个子元素构成,分别为鼠标所在的屏幕位置的横纵坐标,
- 当为键盘动作时,由三个子元素构成,分别是(按键编号, 按键名, 拓展标记),
- 当为输入文字动作时,为要输入的文字内容。
- 每行
//后的部分为注释内容。 - 修改时请严格遵守格式,否则可能导致脚本无法运行,建议修改前先备份一下。
- 横纵坐标为[-1, -1]时,表示在鼠标当前所在位置执行操作。
功能的使用详见wiki
我是陶佳元,热爱代码,怀旧,在互联网上常用的 ID 有 taojy123 、tao.py。
我的个人站点 tslow.cn 整理并罗列了一些 个人项目 和 小工具 合集。
你可以在 简书 浏览我最新发布的文章,还可以在 B站 观看我的技术分享和生活纪实。
我的邮箱: taojy123@163.com
如果您是开发爱好者,并对本项目感兴趣,欢迎参与项目的共同建设,您可以通过本项目的dev分支查看目前的进度,并且可以向本项目的dev分支提交 Pull request 来贡献代码。
在此,特别感谢积极贡献者:
感谢 JetBrains 免费提供开发工具
暂时没法打包 x86 版本,32 位系统的同学请自行源码编译,或 下载v1.5老版本 使用
- 支持在Linux和Mac环境下运行
- 支持在多屏环境下运行(仅Windows)
- 修复程序在执行连点操作时有概率崩溃的问题
- 修复文件选择器选择脚本后选项卡未更新的问题
- 初步实现自定义扩展功能
- 可调整提示音音量
- 增加脚本重命名/编辑子窗口
- 添加英文文档
- 增加简单日志窗口
- 适应高分辨率(在高分辨率情况下放大窗口)
v4.1
- 添加 命令行运行能力
v4.0
- 使用 PySide2 重写 UI
- 快捷键支持鼠标中键与侧键
- 相关 issue 提出的功能需求实现
- 4.0 代码基本由 Monomux 贡献,KeymouseGo 的整体品质有了较大提升。感谢付出! ffrom https://github.com/taojy123/KeymouseGo (2024-6-16)

No comments:
Post a Comment