使用 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高效编程技巧
Jan 07 Python
python妙用之编码的转换详解
Apr 21 Python
基于DATAFRAME中元素的读取与修改方法
Jun 08 Python
Python实现重建二叉树的三种方法详解
Jun 23 Python
Python多线程原理与用法实例剖析
Jan 22 Python
Python GUI编程 文本弹窗的实例
Jun 11 Python
使用Django搭建web服务器的例子(最最正确的方式)
Aug 29 Python
Tensorflow 定义变量,函数,数值计算等名字的更新方式
Feb 10 Python
jupyter notebook清除输出方式
Apr 10 Python
使用Python实现批量ping操作方法
May 06 Python
使用Pytorch实现two-head(多输出)模型的操作
May 28 Python
Python写情书? 10行代码展示如何把情书写在她的照片里
Apr 21 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函数microtime()用法与说明
2013/12/04 PHP
简单的php+mysql聊天室实现方法(附源码)
2016/01/05 PHP
PHP+JQUERY操作JSON实例
2017/03/23 PHP
php-fpm开启状态统计的方法详解
2017/06/23 PHP
thinkphp5实现无限级分类
2019/02/18 PHP
js获取单选按钮的数据
2006/11/27 Javascript
HTML node相关的一些资料整理
2010/01/01 Javascript
javascript创建和存储cookie示例
2014/01/07 Javascript
MVVM模式中ViewModel和View、Model有什么区别?
2015/06/19 Javascript
javascript中sort排序实例详解
2016/07/24 Javascript
Bootstrap Table使用方法解析
2016/10/19 Javascript
Bootstrap 模态框(Modal)带参数传值实例
2017/08/20 Javascript
nodejs中安装ghost出错的原因及解决方法
2017/10/23 NodeJs
vue.js项目中实用的小技巧汇总
2017/11/29 Javascript
vue router 源码概览案例分析
2018/10/09 Javascript
解决vuecli3中img src 的引入问题
2020/08/04 Javascript
Python中字符串的处理技巧分享
2016/09/17 Python
Python读取文件内容的三种常用方式及效率比较
2017/10/07 Python
快速解决安装python没有scripts文件夹的问题
2018/04/03 Python
python控制windows剪贴板,向剪贴板中写入图片的实例
2018/05/31 Python
对Python中列表和数组的赋值,浅拷贝和深拷贝的实例讲解
2018/06/28 Python
python opencv实现切变换 不裁减图片
2018/07/26 Python
Python数据分析matplotlib设置多个子图的间距方法
2018/08/03 Python
python 将大文件切分为多个小文件的实例
2019/01/14 Python
AmazeUI 导航条的实现示例
2020/08/14 HTML / CSS
网络工程师的自我评价
2013/10/02 职场文书
土木工程师岗位职责
2013/11/24 职场文书
医院辞职信范文
2014/01/17 职场文书
电子商务求职信
2014/06/15 职场文书
物价局领导班子四风问题整改措施
2014/10/26 职场文书
2015年师德师风承诺书
2015/01/22 职场文书
介绍信范文
2015/01/31 职场文书
2015年女职工工作总结
2015/05/15 职场文书
2016年大学生暑期社会实践方案
2015/11/26 职场文书
党员干部学习三严三实心得体会
2016/01/05 职场文书
【HBU】数据库第四周 单表查询
2021/04/05 SQL Server