类似按键精灵的鼠标键盘录制和自动化操作 模拟点击和键入 | 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 3
from 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