跨系统平台的一款找色按键精灵
。
主要运行原理为:检测屏幕上一点或多点像素的颜色值(最多可以10个点),如果颜色值全部符合,则用鼠标点击设定的点(或者执行其他命令)。
为什么要找色?与传统录制脚本的按键精灵比较:
- 更快:传统录制脚本按键精灵,因为是人工操作鼠标、键盘,移动鼠标键盘以及人脑思考,这导致停顿时候需要花费脚本等待时间。但同样地,你需要把运行脚本的时间消耗在制作脚本的过程中。
- 更准确:当脚本正在运行,突然弹出窗体,比如说QQ广告,杀毒提示,这时候传统录制脚本按键精灵还在傻傻的执行。又或者,这边录制了脚本,在机器运行流畅时执行没问题,但在机器卡顿时,点击某个按钮,程序未反应过来,脚本又在傻傻滴继续执行。
- 容错率:当出现上面的状况时,传统录制脚本按键精灵只能从头开始了,但
找色按键精灵
可以在重试等待屏幕色点
检测通过后继续执行,避免了机器卡顿产生的差异性。即便是有其他窗体阻挡,找色按键精灵
由于检测屏幕色点
失败,重试后仍未解决,便会记录当前执行步骤,下次可以继续从此步骤执行。
下面将根据各个区域进行功能介绍。
找色点:需要检测的屏幕坐标以及该点的
RGB
值
- 每个
色点
对应快捷键F1
~F9
(注意:由于没有全局热键,这里需要在程序内才能使用)
清空:清空对应找
色点
已经录入的信息
单击坐标:需要点击的屏幕坐标以及该点的
RGB
值
- 该点快捷键为
F10
(注意:由于没有全局热键,这里需要在程序内才能使用)- 该配置项与
配置区域
-单击颜色
功能有关联设定,设置是否将该点的RGB
值也作为检测色点
,默认为忽略。
单击颜色:设置是否将单击坐标点的
RGB
值也作为检测色点
,默认为忽略。
按钮类型:设置点击鼠标
左键
或右键
。
前置等待:执行检测前的
等待时间
。
单击次数:单击次数。
重试次数:检测屏幕
色点
失败后是否需要重试,以及重试多少次的设定。
重试等待: 重试前需要
等待时间
。
重试等待
不包含前置等待
,即前置等待
配置只会在执行第一次检测前执行一次sleep(int)。
重置色点:清空所有
色点
已经录入的信息。
- 不包含
单击坐标
生成代码:将上方设定的
色点
、单击坐标
,以及配置区域
生成执行代码。
- 代码会生成至下方的
代码编辑框
测试代码:执行
代码编辑框
中的代码。
- 如果执行成功,
代码编辑框
字体会变成绿色,否则为红色。
保存代码:将
代码编辑框
中的代码保存到sqlite数据库。
- 该功能尚未开发。
- 该功能尚未开发。
- 该区域有
重新执行
、从此行开始执行
、暂停
、停止
功能。- 下方会有一个
QTableWidget
控件,显示已经添加到sqlite数据库的脚本代码。- 双击
QTableWidget
控件中的行,弹出修改信息窗体,可以手动修改代码执行顺序
、备注
、是否启用
、代码内容
等信息。- 另外
QTableWidget
控件中的行有代码上移
、代码下移
、是否启用
、删除代码
等按钮。
安装依赖库
- pip install pyqt5==5.9
- pip install pynput
- pip install pyscreeze
- pip install colorama
- pip install sqlalchemy
启动
- python main.py
- 注意:部分程序的按钮,在鼠标悬停时会有提示出现,提示信息阻挡了读取按钮的颜色,这些情况可能导致按下快捷键时读取
色点
颜色值不同。
- 一些需要重复工作的场景
- 抢红包(虽然,检测效率感人,但在Windows系统上可以有更快的速度)
- 制作游戏脚本
- 增加
调试区域
模块 - 增加
键盘操作
功能,可以参考pynput
文档 - 增加
全局热键
功能,可能较难实现 - 优化在OS X和Linux屏幕检测,可能较难实现(目前是使用截图,速度较慢)
Windows: 未测试
- Windows可以使用win32加快屏幕检测速度, 或者阅读
pyscreeze
中pixel(x, y)
源码后对本程序进行修改。
Linux: 未测试
OS X: 已测试
- 由于不能调用API,找了很多途径都没办法解决读取屏幕坐标颜色值,只能通过截图后通过PIL读取颜色值。
- 执行一次屏幕检测需要耗时0.4~0.6秒。
QQ:442487605
2019-05-15
- 初次提交
- 增加回调函数功能
- 增加保存代码功能
2019-05-16
- 重构界面,各区域界面分别写成单独的类