Giter VIP home page Giter VIP logo

flymouse's Introduction

FlyMouse

跨系统平台的一款找色按键精灵

主要运行原理为:检测屏幕上一点或多点像素的颜色值(最多可以10个点),如果颜色值全部符合,则用鼠标点击设定的点(或者执行其他命令)。

为什么要找色?与传统录制脚本的按键精灵比较:

  • 更快:传统录制脚本按键精灵,因为是人工操作鼠标、键盘,移动鼠标键盘以及人脑思考,这导致停顿时候需要花费脚本等待时间。但同样地,你需要把运行脚本的时间消耗在制作脚本的过程中。
  • 更准确:当脚本正在运行,突然弹出窗体,比如说QQ广告,杀毒提示,这时候传统录制脚本按键精灵还在傻傻的执行。又或者,这边录制了脚本,在机器运行流畅时执行没问题,但在机器卡顿时,点击某个按钮,程序未反应过来,脚本又在傻傻滴继续执行。
  • 容错率:当出现上面的状况时,传统录制脚本按键精灵只能从头开始了,但找色按键精灵可以在重试等待屏幕色点检测通过后继续执行,避免了机器卡顿产生的差异性。即便是有其他窗体阻挡,找色按键精灵由于检测屏幕色点失败,重试后仍未解决,便会记录当前执行步骤,下次可以继续从此步骤执行。

运行截图

Run screenshots

下面将根据各个区域进行功能介绍。

找色区域

找色点:需要检测的屏幕坐标以及该点的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

使用示例

Demo screenshots

  • 注意:部分程序的按钮,在鼠标悬停时会有提示出现,提示信息阻挡了读取按钮的颜色,这些情况可能导致按下快捷键时读取色点颜色值不同。

应用场景

  • 一些需要重复工作的场景
  • 抢红包(虽然,检测效率感人,但在Windows系统上可以有更快的速度)
  • 制作游戏脚本

开发计划

  • 增加调试区域模块
  • 增加键盘操作功能,可以参考pynput文档
  • 增加全局热键功能,可能较难实现
  • 优化在OS X和Linux屏幕检测,可能较难实现(目前是使用截图,速度较慢)

各平台说明

Windows: 未测试

  • Windows可以使用win32加快屏幕检测速度, 或者阅读pyscreezepixel(x, y)源码后对本程序进行修改。

Linux: 未测试

OS X: 已测试

  • 由于不能调用API,找了很多途径都没办法解决读取屏幕坐标颜色值,只能通过截图后通过PIL读取颜色值。
  • 执行一次屏幕检测需要耗时0.4~0.6秒。

联系作者

欢迎添加作者QQ进行交流。

QQ:442487605

更新说明

2019-05-15

  • 初次提交
  • 增加回调函数功能
  • 增加保存代码功能

2019-05-16

  • 重构界面,各区域界面分别写成单独的类

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.