使用 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实现的去除win下文本文件头部BOM的代码
Feb 10 Python
简单的Python抓taobao图片爬虫
Oct 26 Python
Django框架中处理URLconf中特定的URL的方法
Jul 20 Python
python中异常捕获方法详解
Mar 03 Python
Python2.X/Python3.X中urllib库区别讲解
Dec 19 Python
python实现求最长回文子串长度
Jan 22 Python
Python的SimpleHTTPServer模块用处及使用方法简介
Jan 22 Python
Python学习之Django的管理界面代码示例
Feb 10 Python
python 解压pkl文件的方法
Oct 25 Python
django 实现手动存储文件到model的FileField
Mar 30 Python
python的reverse函数翻转结果为None的问题
May 11 Python
教你使用TensorFlow2识别验证码
Jun 11 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中配置文件操作 如config.php文件的读取修改等操作
2012/07/07 PHP
PHP实现统计在线人数功能示例
2016/10/15 PHP
javascript 操作符(~、&、|、^、)使用案例
2014/12/31 Javascript
JS交换变量的方法
2015/01/21 Javascript
jQuery实现个性翻牌效果导航菜单的方法
2015/03/09 Javascript
JavaScript实现单击下拉框选择直接跳转页面的方法
2015/07/02 Javascript
基于JavaScript实现高德地图和百度地图提取行政区边界经纬度坐标
2016/01/22 Javascript
用JS中split方法实现彩色文字背景效果实例
2016/08/24 Javascript
vue.js初学入门教程(1)
2016/11/03 Javascript
javascript实现鼠标点击页面 移动DIV
2016/12/02 Javascript
Angular.js基础学习之初始化
2017/03/10 Javascript
Vue.js 2.0学习教程之从基础到组件详解
2017/04/24 Javascript
javascript获取图片的top N主色值方法详解
2018/01/26 Javascript
layui的layedit富文本赋值方法
2019/09/18 Javascript
微信小程序canvas分享海报功能
2019/10/31 Javascript
Vue axios 跨域请求无法带上cookie的解决
2020/09/08 Javascript
jQuery实现可以计算进制转换的计算器
2020/10/19 jQuery
python机器学习实战之最近邻kNN分类器
2017/12/20 Python
Python自定义函数实现求两个数最大公约数、最小公倍数示例
2018/05/21 Python
关于多元线性回归分析——Python&SPSS
2020/02/24 Python
Python 读取xml数据,cv2裁剪图片实例
2020/03/10 Python
keras实现基于孪生网络的图片相似度计算方式
2020/06/11 Python
pycharm不以pytest方式运行,想要切换回普通模式运行的操作
2020/09/01 Python
浅析几个CSS3常用功能的写法
2014/06/05 HTML / CSS
Wiggle中国:英国骑行、跑步、游泳 & 铁三运动装备专卖网店
2016/08/02 全球购物
诗普兰迪官方网站:Splendid
2018/09/18 全球购物
三星俄罗斯授权在线商店:Samsung俄罗斯
2019/09/28 全球购物
Linux上比较文件的命令都有哪些
2012/02/24 面试题
会计应届生的自荐信
2013/12/13 职场文书
动漫设计与制作专业推荐信
2014/07/07 职场文书
转让协议书范本
2014/09/13 职场文书
校园会短篇的广播稿
2014/10/21 职场文书
工作试用期自我评价
2015/03/10 职场文书
教师岗位说明书
2015/09/30 职场文书
导游词之山海关
2019/12/10 职场文书
vue组件vue-esign实现电子签名
2022/04/21 Vue.js