以按键精灵为灵感,写了一个带 GUI 的鼠标宏。第三方库用到了 Pillow 和 pyautogui,分别提供了获取鼠标位置 RGB 颜色和模拟键鼠操作功能。GUI 当前通过 Python 内置的 tkinter 库实现,后续可能会用别的(可以支持拖动控件的)。
添加判断功能暂未写好,后续会在本文更新。
主要功能
代码实现
主界面
1 | import pyautogui |
添加动作
点击后在下方出现 Frame,内含动作前后延迟和动作目标位置。
动作类
1 | # 动作类 |
1 | next_row = 1 |
添加判断
这个还没写。
循环次数
变量实为右侧的 Entry。
1 | tkinter.ttk.Label(mainland, text="循环次数").grid(column=0, row=1) |
log
勾选后点击开始会输出日志。
1 | desktop_path = pathlib.Path.home() / "Desktop" |
开始
遍历所有的 Frame,获取输入的值,并依次执行。
1 | def run(): |
导出
同开始,但不执行,而是输出文件。
1 | def saveas(): |
导入
删除所有动作 Frame,并按序写入。
1 | def load(): |
鼠标位置
鼠标焦点在动作 Frame 输入框时触发,不然会比较卡。
1 | # 获取全局鼠标位置(支持多显示器) |
宏的语法
如下例,中间用字母隔开,注意所有数字均为整型,字母顺序无所谓。
- N:动作序号(No),执行时会按这个顺序。
- X:鼠标 X 位置,以屏幕 1 左上角为原点
0。 - Y:鼠标 Y 位置,以屏幕 1 左上角为原点
0。 - B:移动前延迟(before),单位 ms。
- A:移动后延迟(after),单位 ms。
- #:注释,语法分析时会忽略
#至空格(换行符)的内容。
后续更新
- 添加判断功能,比如鼠标目标位置颜色。
- 动作 / 判断位置改为始终置顶且可拖动的窗体,而不是手动输入坐标。
- 动作加上鼠标右键、中键和键盘等操作。
- 动作 / 判断顺序可调整(这个或许需要整体重构,会另外更新)。
成品获取
下载请见 Malvern's File Server。
