pyautogui自动化控制鼠标和键盘操作的步骤


Posted in Python onApril 01, 2020

PyAutoGUI是一个纯Python的GUI自动化工具,其目的是可以用程序自动控制鼠标和键盘操作,多平台支持(Windows,OS X,Linux)。

安装

pip3 install pyautogui

pyautogui鼠标操作样例

import pyautogui

# 获取当前屏幕分辨率
screenWidth, screenHeight = pyautogui.size()

# 获取当前鼠标位置
currentMouseX, currentMouseY = pyautogui.position()

# 2秒钟鼠标移动坐标为100,100位置 绝对移动
#pyautogui.moveTo(100, 100,2)
pyautogui.moveTo(x=100, y=100,duration=2, tween=pyautogui.linear)

#鼠标移到屏幕中央。
pyautogui.moveTo(screenWidth / 2, screenHeight / 2)

# 鼠标左击一次
#pyautogui.click()
# x 
# y 
# clicks 点击次数
# interval点击之间的间隔
# button 'left', 'middle', 'right' 对应鼠标 左 中 右或者取值(1, 2, or 3)
# tween 渐变函数
#
pyautogui.click(x=None, y=None, clicks=1, interval=0.0, button='left', duration=0.0, tween=pyautogui.linear)

# 鼠标相对移动 ,向下移动
#pyautogui.moveRel(None, 10)
pyautogui.moveRel(xOffset=None, yOffset=10,duration=0.0, tween=pyautogui.linear)


# 鼠标当前位置0间隔双击
#pyautogui.doubleClick()
pyautogui.doubleClick(x=None, y=None, interval=0.0, button='left', duration=0.0, tween=pyautogui.linear)

# 鼠标当前位置3击
#pyautogui.tripleClick()
pyautogui.tripleClick(x=None, y=None, interval=0.0, button='left', duration=0.0, tween=pyautogui.linear)

#右击
pyautogui.rightClick()

#中击
pyautogui.middleClick()

# 用缓动/渐变函数让鼠标2秒后移动到(500,500)位置
# use tweening/easing function to move mouse over 2 seconds.
pyautogui.moveTo(x=500, y=500, duration=2, tween=pyautogui.easeInOutQuad)

#鼠标拖拽
pyautogui.dragTo(x=427, y=535, duration=3,button='left')

#鼠标相对拖拽
pyautogui.dragRel(xOffset=100,yOffset=100,duration=,button='left',mouseDownUp=False)

#鼠标移动到x=1796, y=778位置按下
pyautogui.mouseDown(x=1796, y=778, button='left')

#鼠标移动到x=2745, y=778位置松开(与mouseDown组合使用选中)
pyautogui.mouseUp(x=2745, y=778, button='left',duration=5)

#鼠标当前位置滚轮滚动
pyautogui.scroll()
#鼠标水平滚动(Linux)
pyautogui.hscroll()
#鼠标左右滚动(Linux)
pyautogui.vscroll()

pyautogui键盘操作样例

#模拟输入信息
pyautogui.typewrite(message='Hello world!',interval=0.5)
#点击ESC
pyautogui.press('esc')
# 按住shift键
pyautogui.keyDown('shift')
# 放开shift键
pyautogui.keyUp('shift')
# 模拟组合热键
pyautogui.hotkey('ctrl', 'c')

按键支持

按键 说明
enter(或return 或 \n) 回车
esc ESC键
shiftleft, shiftright 左右SHIFT键
altleft, altright 左右ALT键
ctrlleft, ctrlright 左右CTRL键
tab (\t) TAB键
backspace, delete BACKSPACE 、DELETE键
pageup, pagedown PAGE UP 和 PAGE DOWN键
home, end HOME 和 END键
up, down, left,right 箭头键
f1, f2, f3…. F1…….F12键
volumemute, volumedown,volumeup 有些键盘没有
pause PAUSE键
capslock, numlock,scrolllock CAPS LOCK, NUM LOCK, 和 SCROLLLOCK 键
insert INS或INSERT键
printscreen PRTSC 或 PRINT SCREEN键
winleft, winright Win键
command Mac OS X command键

提示信息

alert

#pyautogui.alert('This is an alert box.','Test')
pyautogui.alert(text='This is an alert box.', title='Test')

pyautogui自动化控制鼠标和键盘操作的步骤

option

#pyautogui.confirm('Shall I proceed?')
pyautogui.confirm('Enter option.', buttons=['A', 'B', 'C'])

pyautogui自动化控制鼠标和键盘操作的步骤

password

a = pyautogui.password('Enter password (text will be hidden)')
print(a)

pyautogui自动化控制鼠标和键盘操作的步骤

prompt

a = pyautogui.prompt('input message')
print(a)

pyautogui自动化控制鼠标和键盘操作的步骤

截屏

整个屏幕截图并保存

im1 = pyautogui.screenshot()
im1.save('my_screenshot.png')

im2 = pyautogui.screenshot('my_screenshot2.png')

屏幕查找图片位置并获取中间点

#在当前屏幕中查找指定图片(图片需要由系统截图功能截取的图)
coords = pyautogui.locateOnScreen('folder.png')
#获取定位到的图中间点坐标
x,y=pyautogui.center(coords)
#右击该坐标点
pyautogui.rightClick(x,y)

安全设置

import pyautogui

#保护措施,避免失控
pyautogui.FAILSAFE = True
#为所有的PyAutoGUI函数增加延迟。默认延迟时间是0.1秒。
pyautogui.PAUSE = 0.5

到此这篇关于pyautogui自动化控制鼠标和键盘操作的步骤的文章就介绍到这了,更多相关pyautogui 控制鼠标和键盘内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python基于Tkinter的HelloWorld入门实例
Jun 17 Python
python 计算文件的md5值实例
Jan 13 Python
flask框架使用orm连接数据库的方法示例
Jul 16 Python
教你利用Python玩转histogram直方图的五种方法
Jul 30 Python
用Python实现大文本文件切割的方法
Jan 12 Python
Django中多种重定向方法使用详解
Jul 17 Python
django列表筛选功能的实现代码
Mar 27 Python
Django Serializer HiddenField隐藏字段实例
Mar 31 Python
Anaconda和ipython环境适配的实现
Apr 22 Python
pandas的resample重采样的使用
Apr 24 Python
Python self用法详解
Nov 28 Python
Python调用高德API实现批量地址转经纬度并写入表格的功能
Jan 12 Python
详解Python中pyautogui库的最全使用方法
Apr 01 #Python
django的模型类管理器——数据库操作的封装详解
Apr 01 #Python
opencv中图像叠加/图像融合/按位操作的实现
Apr 01 #Python
Django数据库操作之save与update的使用
Apr 01 #Python
django model通过字典更新数据实例
Apr 01 #Python
django执行原始查询sql,并返回Dict字典例子
Apr 01 #Python
python 日志 logging模块详细解析
Mar 31 #Python
You might like
ZF等常用php框架中存在的问题
2008/01/10 PHP
PHP 引用是个坏习惯
2010/03/12 PHP
如何给phpcms v9增加类似于phpcms 2008中的关键词表
2013/07/01 PHP
PHP中大于2038年时间戳的问题处理方案
2015/03/03 PHP
PHP实现从远程下载文件的方法
2015/03/12 PHP
php提取微信账单的有效信息
2018/10/01 PHP
PHP批斗大会之缺失的异常详解
2019/07/09 PHP
childNodes.length与children.length的区别
2009/05/14 Javascript
javascript Math.random()随机数函数
2009/11/04 Javascript
基于jquery实现的服务器验证控件的启用和禁用代码
2010/04/27 Javascript
判断浏览器的javascript版本的代码
2010/09/03 Javascript
js跳转页面方法总结
2014/01/29 Javascript
jquery实现的用户注册表单提示操作效果代码分享
2015/08/28 Javascript
基于Bootstrap实现图片轮播效果
2016/05/22 Javascript
概述javascript在Google IE中的调试技巧
2016/11/24 Javascript
微信小程序开发的四十个技术窍门总结(推荐)
2017/01/23 Javascript
JavaScript正则获取地址栏中参数的方法
2017/03/02 Javascript
深究AngularJS如何获取input的焦点(自定义指令)
2017/06/12 Javascript
js根据json数据中的某一个属性来给数据分组的方法
2018/10/08 Javascript
vue父子组件通信的高级用法示例
2019/08/29 Javascript
JS控制GIF图片的停止与显示
2019/10/24 Javascript
如何优雅地在Node应用中进行错误异常处理
2019/11/25 Javascript
js中的面向对象之对象常见创建方法详解
2019/12/16 Javascript
vue组件中传值EventBus的使用及注意事项说明
2020/11/16 Javascript
[02:28]DOTA2 2015国际邀请赛中国区预选赛首日现场百态
2015/05/26 DOTA
浅谈Python类里的__init__方法函数,Python类的构造函数
2016/12/10 Python
Python使用遗传算法解决最大流问题
2018/01/29 Python
详解用python自制微信机器人,定时发送天气预报
2019/03/25 Python
python-OpenCV 实现将数组转换成灰度图和彩图
2020/01/09 Python
python 删除系统中的文件(按时间,大小,扩展名)
2020/11/19 Python
浅析HTML5中的download属性使用
2019/03/13 HTML / CSS
本科生导师推荐信范文
2014/05/18 职场文书
求职意向书范本
2015/05/11 职场文书
资深HR教你写好简历中的自我评价
2019/05/07 职场文书
php随机生成验证码,php随机生成数字,php随机生成数字加字母!
2021/04/01 PHP
关于HTML编码导致的乱码问题
2021/09/04 HTML / CSS