使用 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编写检测数据库SA用户的方法
Jul 11 Python
Python的类实例属性访问规则探讨
Jan 30 Python
深入理解Python中各种方法的运作原理
Jun 15 Python
详解python中xlrd包的安装与处理Excel表格
Dec 16 Python
浅谈Python实现2种文件复制的方法
Jan 19 Python
详解Python最长公共子串和最长公共子序列的实现
Jul 07 Python
Python3内置模块pprint让打印比print更美观详解
Jun 02 Python
Python Request爬取seo.chinaz.com百度权重网站的查询结果过程解析
Aug 13 Python
Python递归调用实现数字累加的代码
Feb 25 Python
Python对称的二叉树多种思路实现方法
Feb 28 Python
Python数据可视化实现多种图例代码详解
Jul 14 Python
python3.6中anaconda安装sklearn踩坑实录
Jul 28 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自动更新新闻DIY
2006/10/09 PHP
ThinkPHP关于session的操作方法汇总
2014/07/18 PHP
PHP实现求两个字符串最长公共子串的方法示例
2017/11/17 PHP
详解php与ethereum客户端交互
2018/04/28 PHP
PHP数组基本用法与知识点总结
2020/06/02 PHP
轻轻松松学JS调试(不下载任何工具)
2010/04/14 Javascript
jquery foreach使用示例
2013/09/12 Javascript
百度判断手机终端并自动跳转js代码及使用实例
2014/06/11 Javascript
Jquery选择器中使用变量实现动态选择例子
2014/07/25 Javascript
SyntaxHighlighter 3.0.83使用笔记
2015/01/26 Javascript
jQuery三级下拉列表导航菜单代码分享
2020/04/15 Javascript
Jquery插件easyUi实现表单验证示例
2015/12/15 Javascript
jQuery禁用键盘后退屏蔽F5刷新及禁用右键单击
2016/01/22 Javascript
理解javascript中Map代替循环
2016/02/26 Javascript
JavaScript实现简单Tip提示框效果
2016/04/20 Javascript
浅谈JSON.stringify()和JOSN.parse()方法的不同
2016/08/29 Javascript
解析微信JS-SDK配置授权,实现分享接口
2016/12/09 Javascript
jquery实时获取时间的简单实例
2017/01/26 Javascript
详解vue2.0组件通信各种情况总结与实例分析
2017/03/22 Javascript
JavaScript装饰器函数(Decorator)实例详解
2017/03/30 Javascript
Javascript中的async awai的用法
2017/05/17 Javascript
vue 文件目录结构详解
2017/11/24 Javascript
node内置调试方法总结
2018/02/22 Javascript
js中获取URL参数的共用方法getRequest()方法实例详解
2018/10/24 Javascript
[01:00]选手抵达华西村 整装待发备战2016国际邀请赛中国区预选赛
2016/06/25 DOTA
Python中类的继承代码实例
2014/10/28 Python
python 获取文件下所有文件或目录os.walk()的实例
2018/04/23 Python
django使用django-apscheduler 实现定时任务的例子
2019/07/20 Python
简单了解python中的与或非运算
2019/09/18 Python
python系统指定文件的查找只输出目录下所有文件及文件夹
2020/01/19 Python
python爬虫今日热榜数据到txt文件的源码
2021/02/23 Python
爱淘宝:淘宝网购物分享平台
2017/04/28 全球购物
门店业绩提升方案
2014/06/08 职场文书
护理专科学生自荐书
2014/07/05 职场文书
2015年百日安全活动总结
2015/03/26 职场文书
2015年组织委员工作总结
2015/04/23 职场文书