使用 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开发WebService系列教程之REST,web.py,eurasia,Django
Jun 30 Python
pandas数据框,统计某列数据对应的个数方法
Apr 11 Python
解决Pycharm无法import自己安装的第三方module问题
May 18 Python
python得到windows自启动列表的方法
Oct 14 Python
Python 带有参数的装饰器实例代码详解
Dec 06 Python
Python 图像处理: 生成二维高斯分布蒙版的实例
Jul 04 Python
Tensorflow 实现分批量读取数据
Jan 04 Python
Python面向对象编程基础实例分析
Jan 17 Python
pyCharm 设置调试输出窗口中文显示方式(字符码转换)
Jun 09 Python
详解Python设计模式之策略模式
Jun 15 Python
使用numpngw和matplotlib生成png动画的示例代码
Jan 24 Python
python使用BeautifulSoup 解析HTML
Apr 24 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
CI映射(加载)数据到view层的方法
2016/03/28 PHP
PHP生成可点击刷新的验证码简单示例
2016/05/13 PHP
PHP迭代与递归实现无限级分类
2017/08/28 PHP
详解PHP文件的自动加载(autoloading)
2018/02/04 PHP
鼠标移动到图片名上,显示图片的简单实例
2013/07/14 Javascript
js将控件隐藏及display属性的使用介绍
2013/12/30 Javascript
js监控IE火狐浏览器关闭、刷新、回退、前进事件
2014/07/23 Javascript
Javascript学习笔记之相等符号与严格相等符号
2014/11/23 Javascript
javascript中AJAX用法实例分析
2015/01/30 Javascript
jQuery常用且重要方法汇总
2015/07/13 Javascript
jQuery实现鼠标双击Table单元格变成文本框及输入内容后更新到数据库的方法
2015/11/25 Javascript
JavaScript学习笔记之取数组中最大值和最小值
2016/03/23 Javascript
jQuery使用$.each遍历json数组的简单实现方法
2016/04/18 Javascript
利用Javascript仿Excel的数据透视分析功能
2016/09/07 Javascript
Knockout结合Bootstrap创建动态UI实现产品列表管理
2016/09/14 Javascript
Thinkjs3新手入门之如何使用静态资源目录
2017/12/06 Javascript
在HTML文档中嵌入JavaScript的四种方法
2018/05/07 Javascript
详解使用 Node.js 开发简单的脚手架工具
2018/06/08 Javascript
微信小程序动态设置图片大小的方法
2019/11/21 Javascript
js中关于Blob对象的介绍与使用
2019/11/29 Javascript
微信小程序实现点击页面出现文字
2020/09/21 Javascript
Python爬虫实现vip电影下载的示例代码
2020/04/20 Python
python 实现"神经衰弱"翻牌游戏
2020/11/09 Python
安纳塔拉酒店度假村及水疗官方网站:Anantara Hotel
2016/08/25 全球购物
英国最大的香水商店:The Fragrance Shop
2018/07/06 全球购物
GC是什么?为什么要有GC?
2013/12/08 面试题
幼师自荐信
2013/10/26 职场文书
新闻专业推荐信范文
2013/11/20 职场文书
如何写你的创业计划书
2014/01/07 职场文书
财务支持类个人的自我评价
2014/02/14 职场文书
电子专业求职信
2014/06/19 职场文书
实习生矿工检讨书
2014/10/13 职场文书
2015年收银员个人工作总结
2015/04/01 职场文书
2015年项目工作总结
2015/04/29 职场文书
SQL语法CONSTRAINT约束操作详情
2022/01/18 MySQL
MySQL插入数据与查询数据
2022/03/25 MySQL