Python pyautogui模块实现鼠标键盘自动化方法详解
作者:weixin_34419321 发布时间:2023-07-25 09:16:42
本文简单介绍如何使用 Python 的 pyautogui 模块实现鼠标的自动移动以及键盘的自行输入. 该模块不是 Python 自带的, 因此执行以下命令进行安装
# pyautogui模块依赖image模块,没有image会报ImportError: No module named 'PIL'错误
pip install image
pip install pyautogui
官方文档介绍:https://pyautogui.readthedocs.io/en/latest/
使用 pyautogui 模块控制鼠标的移动
size(): 用于获取屏幕分辨率
import pyautogui
print(pyautogui.size())
moveTo(): 用于鼠标的移动
pyautogui.moveTo(100,100,duration=1)
这段代码调用了 moveTo() 函数, 其接受 x, y 坐标作为参数, 还有一个可选的持续时间参数. 该函数将鼠标指针从当前位置移动到 (x, y) 坐标指定的位置, 移动花费的时间由持续时间参数指定. 保存并运行该 Python 脚本, 你将看到, 鼠标指针像被施了魔法一样, 从当前位置花 1 秒钟时间移动到坐标位置 (100, 100).
moveRel(): 根据当前位置, 相对移动鼠标指针
pyautogui.moveRel(0,300,duration=1)
这段代码将鼠标指针从原位置相对地移动 (0, 300) 个像素点 (译注: 即向下移动 300 像素). 比如说, 运行代码之前, 鼠标指针在 (1000, 300), 那么代码运行之后, 鼠标指针将移动到 (1000, 600), 耗时 1 秒.
position(): 获取当前鼠标指针的位置
print(pyautogui.position())
输出: 程序执行时的鼠标所在的位置坐标.
click(): 用于控制鼠标点击和拖拽
pyautogui.click(370,120)
在(370,120)的位置模拟鼠标点击,其中click还有一个参数动作button,默认为'lest',当button='right'时,可rightClick()效果一样(鼠标右键点击)
doubleClick() 双击
rightClick() 右击
有两个与鼠标拖拽操作相关的函数: dragTo 和 dragRel. 它们的行为与 moveTo 和 moveRel 类似, 区别在于拖拽操作在移动的过程中, 会保持鼠标左键被按下.
该功能可用于不同的场景, 比如移动对话框,或在 Windows 的画板程序中用铅笔工具自动绘图
import pyautogui
import time
time.sleep(5) # 5秒种时间切换到画板程序
pyautogui.moveTo(200,200,duration=1) # 鼠标移动到(200,200)的位置
pyautogui.dragRel(100,0,duration=1)
pyautogui.dragRel(0,100,duration=1)
pyautogui.dragRel(-100,0,duration=1)
pyautogui.dragRel(0,-100,duration=1)
scroll(): 滚屏函数接受像素数作为参数, 并用给定的像素数向上滚屏
pyautogui.scroll(200)
对选中的窗口进行向上滚屏200个像素点.当值为负数时,向下移动
typewrite(): 用于自动键入字符串, 只需将要键入的字符串传递给函数作为参数即可
pyautogui.click(100,200)
pyautogui.typewrite('hello word!')
假设文本区域位于屏幕 (100, 200) 的坐标位置, 那么这段代码将点击文本区域, 激活它, 并键入'hello word!'
传递键名: 可以向 typywrite() 函数传入分离的键名.
pyautogui.typewrite(['a','left','ctrlleft'])
这段代码等价于: 键入 "a", 然后敲击左方向键, 再敲击左 ctrl 键.
热键组合: hotkey() 可以模拟组合热键, 比如: ctrl-c, ctrl-a, ctrl-v 等
pyautogui.hotkey('ctrlleft','v')
模拟ctrl-v,复制功能
pyautogui.hotkey('ctrl', 'shift', 'esc')
#等价于
pyautogui.keyDown('ctrl')
pyautogui.keyDown('shift')
pyautogui.keyDown('esc')
pyautogui.keyUp('esc')
pyautogui.keyUp('shift')
pyautogui.keyUp('ctrl')
press() :键盘功能按键
pyautogui.press('enter') # press the Enter key
pyautogui.press('f1') # press the F1 key
pyautogui.press('left') # press the left arrow key
消息弹窗函数
如果你需要消息弹窗,通过单击OK暂停程序,或者向用户显示一些信息,消息弹窗函数就会有类似JavaScript的功能:
pyautogui.alert('这个消息弹窗是文字+OK按钮') # 返回OK
pyautogui.confirm('这个消息弹窗是文字+OK+Cancel按钮') # 返回OK 或 Cancel
pyautogui.prompt('这个消息弹窗是让用户输入字符串,单击OK') # 返回输入的字符串
来源:https://blog.csdn.net/weixin_34419321/article/details/89797688


猜你喜欢
- HTML5真的是很强大,前端时间看到一个canvas实现九宫格的密码解锁。今天抽出时间模仿了一个,特定分享一下!效果截图如下:效果看起来还不
- 前言:前几天上课闲着没事写了一个python敲击木鱼积累功德的小项目,当时纯粹就是写着玩,回顾一下鼠标事件的东西还记不记得,发现这个博客的点
- 本文实例讲述了python异常处理用法。分享给大家供大家参考,具体如下:之前用Java的时候,在容易出错的地方我们经常使用try…catch
- 写在前面:在上一篇文章中介绍了栈这个数据结构,这篇文章介绍一下队列。什么是队列?队列是一种先进先出的数据结构,队列中允许两种基础操作,也就是
- 问题分析在关闭数据库的命令发现mysql关不了,提示Warning: World-writable config file '/et
- 本文实例讲述了Python基于递归实现电话号码映射功能。分享给大家供大家参考,具体如下:问题电话按键上面的每个数字都对应着几个字母,如果按下
- 标准库Python拥有一个强大的标准库。Python语言的核心只包含数字、字符串、列表、字典、文件等常见类型和函数,而由Python标准库提
- 光线追迹得益于计算机的计算的能力,通过追踪具有代表性的光线的传播轨迹,可以更加精确地描述光学系统的性能,光线追迹方法也因此大展其能,诸如Ze
- php二维数组排序测试数据 $arr = [
- 我们需要评估模型预测值来评估训练的好坏。 模型评估是非常重要的,随后的每个模型都有模型评估方式。使用TensorFlow时,需要把模型评估加
- 查询游戏历史成绩最高分前100Sql代码SELECT ps.* FROM cdb_playsgame ps WHERE ps.credits
- 翻板抽奖的实现流程:前端页面提供6个方块,用数字1-6依次表示6个不同的方块,当抽奖者点击6个方块中的某一块时,方块翻转到背面,显示抽奖中奖
- 一、地理编码与逆编码地理编码与逆编码表示的是地名地址与地理坐标(经纬度)互相转换的过程。其中,将地址信息映射为地理坐标的过程称之为地理编码;
- XMLHttpRequest 最近在 W3C 标准之路上又迈进了一步,W3C Web API&nbs
- 目的两年前曾为了租房做过一个找房机器人 「爬取豆瓣租房并定时推送到微信」,维护一段时间后就荒废了。当时因为代码比较简单一直没开源,现在想想说
- 在pandas中的groupby和在sql语句中的groupby有异曲同工之妙,不过也难怪,毕竟关系数据库中的存放数据的结构也是一张大表罢了
- 本文实例为大家分享了python编写猜数字小游戏的具体代码,供大家参考,具体内容如下import randomsecret = random
- np.where共两种用法:第一种np.where(condition, x, y),即condition为条件,当满足条件输出为x,不满足
- 1. ASCII 返回与指定的字符对应的十进制数; SQL> select ascii(A) A,ascii(a) a,ascii(0
- 一、远程过程调用RPC XML-RPC is a Remote Procedure Call method that uses XML pa