python之PyAutoGui教你做个自动脚本计算器的方法
作者:稳健小周 发布时间:2022-01-08 15:24:55
标签:PyAutoGui,自动脚本计算器
前提环境准备
python3+pillow+pyautogui
先提前安装好python3以及pillow和pyautogui模块
这里介绍一下模块安装方法
pip install pillow
pip install pyautogui
pip install opencv-python
最终效果是利用python脚本模拟电脑计算器进行自动计算,相当于模拟人去点击自带的计算器进行运算,想要做到这一点需要有两个条件:
1.模拟鼠标和键盘的输入工作
2.识别计算器按钮的位置
先来看一下win10电脑的计算器是什么样子的:
我们要知道一点,计算器窗口的位置每次都是不同的,如果你是固定去确定按钮的坐标那就太被动了,所以我们这里需要用到图像识别,去识别到按钮的位置,博主这里
做一个示例 做一个1+2=的运算。
废话不多说直接上代码,跟着注释,看懂代码没毛病。
打开你的微信截图截下1,+,2,=四个图片存入脚本所在目录
详细代码
#导入模块
from PIL import ImageGrab
import pyautogui as auto
#定义类
class Screenshoot:
def __init__(self):
#self.bbox = bbox
#self.name = name
#self.im = ImageGrab.grab(self.bbox)
#定位xy坐标,confidence为相似度判断,最好不要使用1.0完全相似,比较容易不识别
self.position_1 = auto.locateCenterOnScreen('1.png', confidence=0.9)
self.position_2 = auto.locateCenterOnScreen('2.png', confidence=0.9)
self.position_3 = auto.locateCenterOnScreen('+.png', confidence=0.9)
self.position_4 = auto.locateCenterOnScreen('=.png', confidence=0.9)
pass
def fullshoot(self):
#全屏截图
#self.im.save('01.png')
pass
def partialshoot(self):
#局部精确截图
#self.im.save(self.name+'.png')
pass
def position_show(self):
#打印各坐标
print(self.position_1)
print(self.position_2)
print(self.position_3)
print(self.position_4)
def caculate(self):
#依次点击按钮
auto.click(self.position_1)
auto.click(self.position_3)
auto.click(self.position_2)
auto.click(self.position_4)
#对象初始化
shoot1 = Screenshoot()
#对象函数执行
shoot1.position_show()
shoot1.caculate()
#shoot1.partialshoot()
#shoot1.fullshoot()
运行结果
来源:https://blog.csdn.net/weixin_45112130/article/details/114391092


猜你喜欢
- python pyinstaller pyqt4 打包 QWindows最近在做课设,用pyqt设计界面。然后用pyinstaller打包程
- 最近我看到看到使用python实现火车票查询,我自己也实现了,感觉收获蛮多的,下面我就把每一步骤都详细给分享出来。(注意使用的是python
- 相关文章推荐:各种北京2008奥运会倒计时Flash2008北京奥运会倒计时js代码 全套北京2008奥运会倒计时屏保<!DOCTYP
- replace()方法返回当前old换成new,可选择的替代限制到最大数量的字符串的副本。语法以下是replace()方法的语法
- 语法格式:row_number() over(partition by 分组列 order by 排序列 desc)row_num
- 本文实例为大家分享了js实现简单放大镜特效的具体代码,供大家参考,具体内容如下先来看看效果:写放大镜之前我们先来了解一下定位:通常子绝父相
- 一、错误案例package mainimport ("fmt""time")var TestMap
- 近来武汉肺炎肆虐全国,大多人的日常应该是宅在家里。出于好奇,笔者想用Python来绘制中国2020肺炎疫情地图。本代码采用Python3,需
- 1、用户管理mysql的用户信息保存在了mysql.user中:select * from mysql.user\G************
- 最近遇到了一个下载静态html报表的需求,需要以提供压缩包的形式完成下载功能,实现的过程中发现相关文档非常杂,故总结一下自己的实现。开发环境
- 近期对数据库进行巡检,发现数据库业务用户(非 SYS/Public)下存在失效对象。对失效对象进行分析,主要包括失效的视图、物化视图、函数、
- 本文实例讲述了js+php实现静态页面实时调用用户登陆状态的方法。分享给大家供大家参考。具体分析如下:在程序开发中,经常会把页面做成html
- PDOStatement::closeCursorPDOStatement::closeCursor — 关闭游标,使语句能再次被执行。(P
- 现在算法是大厂面试的必考题,而且越来越难,已经不是简单的列表,字符串操作了,会涉及到各种数据结结构。单链表的反转也是经常考的一道题,里面故在
- 序 号前 缀使用的变量/范围或数据类型1a or arrArray2b or blnBoolean3bytByte4
- 前言在laravel项目开发中,经常使用到公共函数,那如何在laravel配置全局公共函数呢??下面话不多说了,来一起看看详细的介绍吧方法如
- 1.添加文本标签 plt.text()用于在绘图过程中,在图像上指定坐标的位置添加文本。需要用到的是plt.text()方法。&em
- CocosCreator版本:2.4.2jszip的实际项目应用游戏中有大量配置的情况下,文件会变得非常大,所以有些游戏会采用zip包压缩解
- 事实上各式Tooltips方法非常多. 不过大部分都是用Javascript实现.例如ikshow.cn, 使用的JavaScript, D
- 目录实现思路使用BackgroundSubtractorMOG2进行背景分割使用人像识别填充面部信息使用形态学填充分割出来的前景将人像与目标