Python键鼠操作自动化库PyAutoGUI简介(小结)


Posted in Python onMay 17, 2020

PyAutoGUI是一个Python语言的键鼠自动化库,简单来说和按键精灵的功能一样。但是因为是Python的类库,所以可以使用Python代码配合一些其他类库完成更加强大的功能。下面让我为大家介绍一下吧。

安装

从pip安装即可。

pip install pyautogui

稍等一下安装就完毕了。

Python键鼠操作自动化库PyAutoGUI简介(小结)

使用介绍

简单介绍一下PyAutoGUI的函数以及使用方法。

鼠标操作函数

操作鼠标点击的函数。

函数 简单说明
move(x,y)、 moveTo(x,y) 移动鼠标,前者移动相对位置,后者移动到指定位置
click(x,y)、doubleClick、rightClick 单击/双击/右击,无参版本在当前位置点击鼠标
drag(x,y)、dragTo(x,y) 拖动鼠标
mouseDown、mouseUp 按下按键,松开按键
scroll 向下滚动鼠标滚轮的函数

键盘操作函数

操作键盘按键的函数。

函数 简介
press('left',press=3)
hotkey('ctrl','s') 按下Ctrl+S组合键
keyDown、keyUp 按下和松开键盘按键

提示框函数

PyAutoGUI可以显示提示框,这时候程序会暂停运行,直到用户点击提示框。

函数 简介
alert(text='',title='',button=['OK','Cancle']) 显示警告对话框
confirm() 显示确认对话框
prompt() 显示提示对话框
password() 显示密码输入对话框

屏幕截图和定位函数

截取屏幕的函数,也可以从屏幕中寻找匹配的图片,并返回其坐标。你可以事先保存一些按钮的截图,然后通过这种方式定位按钮的位置,然后点击。

函数 简介
screenshot('image.png') 保存截图并返回截图,无参版本直接返回截图不保存
center('image.png') 从屏幕上寻找图片位置,返回框位置
locateOnScreen('img') 从屏幕寻找图片位置,直接返回坐标

简单例子

先来看看官网的画图例子,我把代码稍微改了一下。运行这个例子需要先打开一个画图窗口,并放到全屏,然后运行Python代码,迅速将画图程序切换到前台。这样就可以看到PyAutoGUI控制鼠标来绘制精确的直线了。

import pyautogui
import time

time.sleep(3)

distance = 100
pyautogui.moveTo(400, 300)
while distance > 0:
  pyautogui.drag(distance, 0, duration=0.1)  
  distance -= 5
  pyautogui.drag(0, distance, duration=0.1)  
  pyautogui.drag(-distance, 0, duration=0.1) 
  distance -= 5
  pyautogui.drag(0, -distance, duration=0.1)

绘制出来的图片应该是这样的。

Python键鼠操作自动化库PyAutoGUI简介(小结)

如果要完成一些实际工作,难免会遇到识别点击复杂样式图片的场景。前面提到了截图和图片识别可以比较好的解决这个问题。这个例子需要先安装OpenCV库和opencv-python包,安装完毕之后就可以运行了。这里将win10计算器的几个按钮保存成图片,然后用PyAutoGUI的图片识别功能找到按钮的坐标,这样就可以无障碍的点击按钮,无需关心窗口的位置。特别提一点,下面的confidence参数需要安装了OpenCV才可以使用,它允许我们模糊匹配图片。

import pyautogui
import time

time.sleep(3)

# Windows计算器的按钮截图
five = '5.png'
eight = '8.png'
multiply = 'multiply.png'
equals = 'equals.png'

# 图片识别和点击的函数


def find_and_click(image):
  x, y = pyautogui.locateCenterOnScreen(image, confidence=0.9)
  pyautogui.click(x, y)


# 执行5*8=
find_and_click(five)
find_and_click(multiply)
find_and_click(eight)
find_and_click(equals)

这个例子的截图和代码都在我的github上,欢迎大家查看。

https://github.com/techstay/python-study/tree/master/pyautogui-sample

到此这篇关于Python键鼠操作自动化库PyAutoGUI简介(小结)的文章就介绍到这了,更多相关Python PyAutoGUI内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python实现从订阅源下载图片的方法
Mar 11 Python
python中os模块详解
Oct 14 Python
Python编程实现二叉树及七种遍历方法详解
Jun 02 Python
Python数据结构与算法之完全树与最小堆实例
Dec 13 Python
利用numpy和pandas处理csv文件中的时间方法
Apr 19 Python
对python .txt文件读取及数据处理方法总结
Apr 23 Python
解决DataFrame排序sort的问题
Jun 07 Python
JavaScript中的模拟事件和自定义事件实例分析
Jul 27 Python
解决tensorflow训练时内存持续增加并占满的问题
Jan 19 Python
python实现贪吃蛇游戏源码
Mar 21 Python
django 数据库 get_or_create函数返回值是tuple的问题
May 15 Python
pytorch 计算ConvTranspose1d输出特征大小方式
Jun 23 Python
python 实现PIL模块在图片画线写字
May 16 #Python
在python image 中实现安装中文字体
May 16 #Python
Python 判断时间是否在时间区间内的实例
May 16 #Python
解决Python Matplotlib绘图数据点位置错乱问题
May 16 #Python
Python填充任意颜色,不同算法时间差异分析说明
May 16 #Python
解决echarts中饼图标签重叠的问题
May 16 #Python
实现ECharts双Y轴左右刻度线一致的例子
May 16 #Python
You might like
Win2003服务器安全加固设置--进一步提高服务器安全性
2007/05/23 PHP
PHP spl_autoload_register实现自动加载研究
2011/12/06 PHP
php实现查询百度google收录情况(示例代码)
2013/08/02 PHP
php+xml编程之SimpleXML的应用实例
2015/01/24 PHP
JavaScript和ActionScript的交互实现代码
2010/08/01 Javascript
JavaScript静态类型检查工具FLOW简介
2015/01/06 Javascript
Javascript仿新浪游戏频道鼠标悬停显示子菜单效果
2015/08/21 Javascript
jQuery模拟360浏览器切屏效果幻灯片(附demo源码下载)
2016/01/29 Javascript
javascript冒泡排序小结
2016/04/10 Javascript
jQuery实现无限往下滚动效果代码
2016/04/16 Javascript
JS实现简单的tab切换选项卡效果
2016/09/21 Javascript
微信小程序 用户数据解密详细介绍
2017/01/09 Javascript
Vim快速合并行及vim 将文件所有行合并到一行
2017/11/27 Javascript
原生JS写Ajax的请求函数功能
2017/12/22 Javascript
js实现微信/QQ直接跳转到支付宝APP打开口令领红包功能
2018/01/09 Javascript
Vue 实现拖动滑块验证功能(只有css+js没有后台验证步骤)
2018/08/24 Javascript
微信小程序视图容器(swiper)组件创建轮播图
2020/06/19 Javascript
微信小程序 点击切换样式scroll-view实现代码实例
2019/10/11 Javascript
python绘图库Matplotlib的安装
2014/07/03 Python
12步入门Python中的decorator装饰器使用方法
2016/06/20 Python
Python的面向对象编程方式学习笔记
2016/07/12 Python
Python OOP类中的几种函数或方法总结
2019/02/22 Python
python 列表推导式使用详解
2019/08/29 Python
CSS3 完美实现圆角效果
2009/07/13 HTML / CSS
NBA德国官方网上商店:NBA Store德国
2018/04/13 全球购物
美国家居装饰购物网站:Amanda Lindroth
2020/03/25 全球购物
电子商务专业求职信
2014/03/08 职场文书
2015年小学生暑假总结
2015/07/13 职场文书
副校长2015年教育教学工作总结
2015/07/27 职场文书
2016寒假假期总结
2015/10/10 职场文书
2015年乡镇组织委员工作总结
2015/10/23 职场文书
纪检干部学习心得体会
2016/01/23 职场文书
Windows10下安装MySQL8
2021/04/06 MySQL
如何创建一个创建MySQL数据库中的datetime类型
2022/03/21 MySQL
经典《舰娘》游改全新动画预告 预定11月开播
2022/04/01 日漫
JS前端宏任务微任务及Event Loop使用详解
2022/07/23 Javascript