使用 python pyautogui实现鼠标键盘控制功能


Posted in Python onAugust 04, 2019

pyautogui是一个可以控制鼠标和键盘的python库,类似的还有pywin32。

pyautogui的安装

pip3 install python3-xlib 依赖库 sudo apt-get install scrot 依赖库 pip3 install pyautogui python3下安装pyautogui库 import pyautogui 引入该库

pyautogui的方法保护措施

为了防止pyautogui夺取了鼠标的控制权导致我们无法关掉该程序,它提供了一个保护措施,即把鼠标移到最左上角,此时程序报错退出;

默认FAILSAFE=True,保护模式开启

FAILSAFE = False 关闭保护措施

获取屏幕信息

size() 获取当前屏幕的分辨率,如(1920,1080)二元组

注意:屏幕左上角是原点(0,0),整个屏幕相当于第一象限

position() 获取鼠标当前坐标

onScreen(x,y) 判断点(x,y)是否在屏幕范围内,如负值一定返回False

移动鼠标

moveTo(x,y,duration=0.25) 用0.25s的时间将鼠标移到(x,y)位置 moveRel(x,y,duration=0.25) 以鼠标所在位置为原点,将鼠标移动到(x,y)处

下面代码,让鼠标在指定位置绕一个正方形转动10圈

import pyautogui
for i in range(10):
 pyautogui.moveTo(300, 300, duration=0.25)
 pyautogui.moveTo(400, 300, duration=0.25)
 pyautogui.moveTo(400, 400, duration=0.25)
 pyautogui.moveTo(300, 400, duration=0.25)

下面代码,让鼠标绕当前位置绕正方形转10圈

import pyautogui
for i in range(10):
 pyautogui.moveRel(100, 0, duration=0.25)
 pyautogui.moveRel(0, 100, duration=0.25)
 pyautogui.moveRel(-100, 0, duration=0.25)
 pyautogui.moveRel(0, -100, duration=0.25)

鼠标事件

点击鼠标

click(x, y, button='left', click=3, interval=0.5)

button有3个选项:left,middle,right,不加则默认点击鼠标左键click表示单击次数interval表示每次单击之间的时间间隔click()函数实际由mouseDown()和mouseUp()组成,即按下和松开;

pyautogui.doubleClick() 鼠标双击,其实就是执行两次click()函数。 pyautogui.rightClick() 右击 pyautogui.middleClick() 中击

鼠标滚轮

scroll(200) 控制鼠标的滚轮,正值上滚,负值下滚

拖拽鼠标

dragTo() dragRel()

按下鼠标,并拖拽到指定位置,用法同moveTo(),moveRel()窗口截图处理、寻找目标按钮截图功能

im = screenshot( region=(x,y,width,heigth) ) 截取以(x,y)为左上角且指定宽高的区域,不加参数,默认截取整个屏幕

im.getpixel( (x,y) ) 获取指定位置的像素,是一个三元组(注意输入格式) pixelMatchesColor(x,y,(R,G,B)) 判断(x,y)处的像素是否等于RGB im.save('xx.png') 保存为x.png

寻找按钮

locateOnscreen('xx.png') 寻找屏幕中和xx.png一样的图标位置,是一个四元组 click( center( locateOnscreen('xx.png') ) ) 点击该图标的中心,center用来获取图标中心点的坐标

比如把网易云音乐的应用存为music.png,上述就执行自动点击网易云的图标

总结

以上所述是小编给大家介绍的python中的pyautogui实现鼠标键盘控制功能,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!

Python 相关文章推荐
用Python从零实现贝叶斯分类器的机器学习的教程
Mar 31 Python
简单介绍Python中的struct模块
Apr 28 Python
Python中的FTP通信模块ftplib的用法整理
Jul 08 Python
Python中__init__.py文件的作用详解
Sep 18 Python
python批量替换页眉页脚实例代码
Jan 22 Python
Sanic框架安装与简单入门示例
Jul 16 Python
centos6.8安装python3.7无法import _ssl的解决方法
Sep 17 Python
详解用pyecharts Geo实现动态数据热力图城市找不到问题解决
Jun 26 Python
python多线程扫描端口(线程池)
Sep 04 Python
基于python实现语音录入识别代码实例
Jan 17 Python
用ldap作为django后端用户登录验证的实现
Dec 07 Python
python实现A*寻路算法
Jun 13 Python
Python 实现遥感影像波段组合的示例代码
Aug 04 #Python
PyQtGraph在pyqt中的应用及安装过程
Aug 04 #Python
详解用python生成随机数的几种方法
Aug 04 #Python
python下PyGame的下载与安装过程及遇到问题
Aug 04 #Python
python中pygame安装过程(超级详细)
Aug 04 #Python
浅谈python图片处理Image和skimage的区别
Aug 04 #Python
Python下opencv图像阈值处理的使用笔记
Aug 04 #Python
You might like
PHP实现分页的一个示例
2006/10/09 PHP
php模拟js函数unescape的函数代码
2012/10/20 PHP
利用php下载xls文件(自己动手写的)
2014/04/18 PHP
php生成excel列名超过26列大于Z时的解决方法
2014/12/29 PHP
分享PHP-pcntl 实现多进程代码
2016/09/30 PHP
javascript 学习之旅 (3)
2009/02/05 Javascript
JavaScript中的cacheStorage使用详解
2015/07/29 Javascript
jquery实现像栅栏一样左右滑出式二级菜单效果代码
2015/08/24 Javascript
jQuery实现的简单折叠菜单(折叠面板)效果代码
2015/09/16 Javascript
vue.js 使用v-if v-else发现没有执行解决办法
2017/05/15 Javascript
React Native 使用Fetch发送网络请求的示例代码
2017/12/02 Javascript
webpack写jquery插件的环境配置
2017/12/21 jQuery
基于Koa2写个脚手架模拟接口服务的方法
2018/11/27 Javascript
JS浅拷贝和深拷贝原理与实现方法分析
2019/02/28 Javascript
说说如何使用Vuex进行状态管理(小结)
2019/04/14 Javascript
一文快速了解JQuery中的AJAX
2019/05/31 jQuery
vue视频播放暂停代码
2019/11/08 Javascript
JS手写一个自定义Promise操作示例
2020/03/16 Javascript
[02:35]DOTA2超级联赛专访XB 难忘一年九冠称王
2013/06/20 DOTA
Python探索之SocketServer详解
2017/10/28 Python
Python异常处理操作实例详解
2018/05/10 Python
用pandas中的DataFrame时选取行或列的方法
2018/07/11 Python
python并发和异步编程实例
2018/11/15 Python
使用Python实现微信提醒备忘录功能
2018/12/04 Python
在Python中COM口的调用方法
2019/07/03 Python
AmazeUI 模态窗口的实现代码
2020/08/18 HTML / CSS
Booking.com亚太地区:Booking.com APAC
2020/02/07 全球购物
网络工程与软件技术毕业生自荐信
2013/09/24 职场文书
党在我心中的演讲稿
2014/09/13 职场文书
公司试用期员工自我评价
2014/09/17 职场文书
群众路线教育实践活动对照检查材料
2014/09/22 职场文书
公司档案管理制度
2015/08/05 职场文书
一个成功的互联网创业项目,必须满足这些要求
2019/08/23 职场文书
Django中的JWT身份验证的实现
2021/05/07 Python
python geopandas读取、创建shapefile文件的方法
2021/06/29 Python
Python如何加载模型并查看网络
2022/07/15 Python