pyautogui 基本用法

news2024/11/15 21:39:52

在这里插入图片描述

pyautogui 是一个 Python 库,可以让你用 Python 脚本控制鼠标和键盘。它适用于自动化桌面图形用户界面(GUI)的任务,比如自动化测试、游戏脚本或任何需要模拟用户输入的程序。
以下是使用 pyautogui 的一些基础示例:

  1. 安装 pyautogui
    pip install pyautogui
    
  2. 移动鼠标到指定屏幕坐标:
    import pyautogui
    pyautogui.moveTo(100, 100, duration=1)  # 移动到 (100, 100) 坐标,用时 1 秒
    
  3. 模拟鼠标点击:
    pyautogui.click()  # 在当前位置点击鼠标
    pyautogui.click(200, 200)  # 在 (200, 200) 坐标点击鼠标
    
  4. 模拟键盘输入:
    pyautogui.typewrite('Hello, world!', interval=0.25)  # 模拟键盘输入,每个按键间隔 0.25 秒
    
  5. 按下或释放键盘按键:
    pyautogui.press('enter')  # 按下并释放 Enter 键
    pyautogui.keyDown('shift')  # 按下 Shift 键
    pyautogui.keyUp('shift')  # 释放 Shift 键
    
  6. 获取屏幕尺寸:
    width, height = pyautogui.size()  # 获取屏幕宽度和高度
    
  7. 截屏并保存:
    screenshot = pyautogui.screenshot()  # 截取全屏
    screenshot.save('screenshot.png')  # 保存截图为文件
    

请注意,使用 pyautogui 时,建议先进行一些基础设置,如设置延迟,以防止操作过快导致出错。例如:

pyautogui.PAUSE = 1  # 设置每次操作之间的延迟为 1 秒
pyautogui.FAILSAFE = True  # 启用故障安全模式,将鼠标移动到屏幕的四个角中的任何一个来暂停脚本

在使用 pyautogui 进行自动化操作时,请确保操作符合当地法律法规,不侵犯他人权益,并注意个人信息和数据安全。

要获取鼠标的当前位置,你可以使用 pyautogui 库中的 position() 函数。以下是一个简单的示例:

import pyautogui
# 获取当前鼠标的 x, y 坐标
x, y = pyautogui.position()
print(f"当前鼠标位置: X={x}, Y={y}")

这段代码会打印出当前鼠标在屏幕上的 x 和 y 坐标。请注意,这些坐标是相对于屏幕左上角的像素位置。
如果你想要持续监测鼠标位置,可以使用一个循环:

import pyautogui
import time
try:
    while True:
        x, y = pyautogui.position()
        position_str = 'X: ' + str(x).rjust(4) + ' Y: ' + str(y).rjust(4)
        print(position_str, end='')
        print('\b' * len(position_str), end='', flush=True)
        time.sleep(0.1)  # 每隔 0.1 秒更新一次
except KeyboardInterrupt:
    print('\nDone.')  # 按下 Ctrl+C 终止循环

这段代码会实时打印出鼠标的位置,并且每 0.1 秒更新一次。按下 Ctrl+C 可以终止循环。
请确保在使用 pyautogui 时已经正确安装了该库,并且在运行这些脚本时你的鼠标在屏幕上是可见的。

pyautogui 中,要实现三连击,你可以使用 click() 函数连续三次。以下是一个简单的示例,它会在当前鼠标位置执行三次点击操作:

import pyautogui
# 在当前鼠标位置执行三连击
for _ in range(3):
    pyautogui.click()

如果你想要在特定的坐标位置执行三连击,可以指定 x 和 y 坐标:

import pyautogui
# 在指定坐标位置 (100, 100) 执行三连击
x, y = 100, 100
for _ in range(3):
    pyautogui.click(x, y)

你还可以控制点击的间隔时间,通过 interval 参数来设置两次点击之间的延迟:

import pyautogui
# 在指定坐标位置 (100, 100) 执行三连击,每次点击间隔 0.25 秒
x, y = 100, 100
for _ in range(3):
    pyautogui.click(x, y)
    pyautogui.sleep(0.25)  # 等待 0.25 秒后再进行下一次点击

在上面的代码中,pyautogui.sleep(0.25) 用于在每次点击后添加一个 0.25 秒的延迟。这样,你可以控制点击的速度。

pyautogui 中,要实现三连击,你可以使用 click() 函数连续三次。以下是一个简单的示例,它会在当前鼠标位置执行三次点击操作:

import pyautogui
# 在当前鼠标位置执行三连击
for _ in range(3):
    pyautogui.click()

如果你想要在特定的坐标位置执行三连击,可以指定 x 和 y 坐标:

import pyautogui
# 在指定坐标位置 (100, 100) 执行三连击
x, y = 100, 100
for _ in range(3):
    pyautogui.click(x, y)

你还可以控制点击的间隔时间,通过 interval 参数来设置两次点击之间的延迟:

import pyautogui
# 在指定坐标位置 (100, 100) 执行三连击,每次点击间隔 0.25 秒
x, y = 100, 100
for _ in range(3):
    pyautogui.click(x, y)
    pyautogui.sleep(0.25)  # 等待 0.25 秒后再进行下一次点击

在上面的代码中,pyautogui.sleep(0.25) 用于在每次点击后添加一个 0.25 秒的延迟。这样,你可以控制点击的速度。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1677592.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

地平线旭日X3开发板编译USB网卡驱动 AX88772B

由于使用的激光雷达是网口输出的, 为了不占用X3派已有的网口,接上去了一个绿联的usb网卡, 发现系统没有驱动,所以动手看看能不能自己编译一个 首先lsusb查看一下网卡型号 发现型号是AX88772B,去官网看了一下&#x…

低空经济之无人机

朋友们,今天来聊聊个超酷的话题——低空经济之无人机! 无人机不仅让天空变得触手可及,还带来了无尽的商业可能,简直就是新时代的“空中小助手”啊! 说到无人机,你们是不是也和我一样,脑海里立马…

【数据结构】队列的实现(链式)

文章目录 队列1.队列的概念及结构概念结构 2.队列的实现(链式结构)队列定义初始化队列入队出队获取队头元素获取队尾元素销毁队列判断队列是否为空队列有效个数 完整代码(包含测试代码)Queue.hQueue.ctest.c 队列 1.队列的概念及…

nodemon运行ts文件

https://juejin.cn/post/7035637086451400734 nodemon经常用来调试js文件,大家都是知道的,但是用nodemon来调试ts文件,大家试过吗? 如果直接运行nodemon index.ts是会报错的。 ts 复制代码 //index.ts console.log(1) 需要全局…

安全设备篇——抗DDOS设备

写在前面:up初研究这个设备的时候以为很容易,毕竟ddos嘛大家都懂,但是实际去找资料和研究的时候发现资料少的可怜,再加上大家知道ddos但大多没见过,万幸up的老东家某普有这类设备,和之前的同事沟通了一下还…

百望云钉钉:重塑财务智能化管理,助力企业实现数字化飞跃

近年来,数字技术正在深刻改变着企业生产方式和组织模式,企业面连着业务流程再造、经营模式创新等一系列建设挑战。 其中,财务部门从价值守护走向价值创造的过程中,展现出对企业经营与业务发展的巨大影响力。叠加金税四期税务改革&…

【稳定检索|主题广泛】2024年人文发展、媒体传播与文化交流国际会议(DMCCE 2024)

2024年人文发展、媒体传播与文化交流国际会议(DMCCE 2024) 2024 International Conference on Cultural Development, Media Communication, and Cultural Exchange 【会议简介】 2024年人文发展、媒体传播与文化交流国际会议将于成都举行。此次会议将…

计算机考研|408备考,如何6个月顺利上岸?经验+资料分享

如果是跨考的话,现在已经快六月份了,备考408时间真的很紧张 u1s1,我虽然一直推荐大家考408,但是也看情况,这种跨考,并且时间不充足的情况下,就最好不要去硬刚408了。408的复习量很大&#xff0…

【python数据预处理系列】使用Pandas的factorize()函数进行类别编码(整数编码)

在Pandas中,factorize()函数主要用于将分类变量转换为整数编码,这对于减少内存使用或准备数据进行某些统计分析非常有用。 它实际上是将列的唯一值映射到从0开始的整数序列上。 假设有一个DataFrame,其中一列包含一些类别值,你希望…

运筹说 第114期 | 其他排队模型简介

前面我们已经学习了一些排队模型,对排队系统有了基本认知,本期小编带大家继续来学习其他排队模型的内容。 一、有限源排队模型 顾客源为有限的这类排队问题的主要特征是顾客总数是有限的,如只有m个顾客。每个顾客来到系统中接受服务后仍回到…

jmeter指南:JMeter 安装、配置和性能测试

使用 JMeter 进行性能测试 1. Java 版本要求 JMeter 要求与 Java 8 或更高版本兼容。为了确保安全性和性能,建议安装最新次要版本的主要 Java 版本。鉴于 JMeter 仅使用标准 Java API,如果由于 JRE 实现问题而无法运行 JMeter,请不要提交错…

为Akamai 云平台上部署的资源配置2FA跳板机-上

为重要账户启用2FA,这几乎已经成为保护账户和数据安全的一种标准做法。无论登录常见应用或服务,或是访问企业内部资源,时不时都会需要进行2FA验证。那么当你在Akamai Connected Cloud云平台中部署了各类资源(云计算、云存储、SaaS…

Java面试八股之float和double的区别

Java中float和double的区别 存储空间与精度: double:占据64位(8字节)存储空间,属于双精度浮点数。它可以提供较高的精度,通常能够精确表示大约15到17位十进制数字,适合用于需要较高精度计算或…

【面试必看】MyBatis部分

MyBatis 必读 Mybatis系列全解 MyBatis最全使用指南 MyBatis最全使用指南 1. JDBC java 操作数据库的原始方式就是 JDBC。 但是存在以下问题: 每次操作我们都要创建 connection、Statement 等一些对象,操作完还要关闭、销毁这些对象。 ResultSet …

【OSM】RDP资源无法访问

发布windows的远程桌面资源,web和rdp方式都不能访问,端口测试都正常,不经过堡垒机能正常连接服务器 1、将资源中rdp安全模式指定为rdp,并直接登录到服务器,打开【组策略】,依次展开计算机配置→Windows组件…

手撸XXL-JOB(四)——远程调用定时任务

Java Socket网络编程 网络编程是Java编程中的重要组成部分,包括服务端和客户端两部分内容。Socket是Java网络编程的基本组件之一,用于在应用程序之间提供双向通信,Socket提供了一种标准的接口,允许应用程序通过网络发送和接收数据…

分体工业读写器的适用场景有哪些?

工业读写器根据设计方式不同,可分为一体式读写器和分体式读写器,不同读写器特点不同,适用场景也不同,下面我们就一起来了解一下超高频分体读写器适用场景有哪些。 超高频分体读写器介绍 超高频分体读写器是一种射频识别(RFID)设…

SpringAI应用开发

一、人工智能简述 四次工业革命推动了人类社会发展和变革: 蒸汽时代,发生在18世纪60年代~19世纪中期(大约是1760年到1860年),这一时期的特点是机械化生产和大规模生产。电气时代,发生在19世纪下半叶~20世纪…

一篇文章搞懂 SDN中Minint和Ryu的安装及使用

SDN 一、SDN介绍 一. 什么是SDN? SDN字面意思是软件定义网络,其试图摆脱硬件对网络架构的限制,这样便可以像升级、安装软件一样对网络进行修改,便于更多的APP(应用程序)能够快速部署到网络上。 如果把…

pcdn边缘云常见sla有哪些?如何避免被白嫖

PCDN(Point-to-Point Content Delivery Network)边缘云常见的SLA(Service Level Agreement)规则包括高峰期离线、服务时间、重传延时、限速等。这些规则是为了保证服务质量和用户体验。下面将详细解释这些规则,并提供一…