【自动化】【Python】PyAutoGUI:让你的Python自动化操作电脑,解放双手!

Python3.8

Python3.8

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

更多的程序员文章收录在

【JAVA方向学习文章视频汇总】


按键精灵?

模拟鼠标键盘动作的软件
按键精灵是一款模拟鼠标键盘动作的软件。通过制作脚本,可以让按键精灵代替双手,自动执行一系列鼠标键盘动作。
按键精灵简单易用,不需要任何编程知识就可以做出功能强大的脚本。只要电脑前用双手可以完成的动作,按键精灵都可以替代完成。

一、PyAutoGUI是什么?

PyAutoGUI是一个Python库,能够让Python控制鼠标和键盘,实现GUI自动化。它可以:

控制鼠标移动
执行点击、拖拽操作
滚动鼠标滚轮
输入文字
按下和释放按键
截取屏幕截图
定位图像位置
总之,PyAutoGUI可以模拟人类在电脑上的各种操作,让你的Python程序成为一个"电脑操作员"。

二、安装PyAutoGUI

安装超简单,只需一行命令:

pip install pyautogui
安装完成后,我们来测试一下是否安装成功:

import pyautogui
print(pyautogui.position()) # 显示当前鼠标位置
运行后,你会看到当前鼠标指针的坐标位置,说明安装成功!

三、基础操作:控制鼠标

  1. 获取屏幕大小
    在控制鼠标之前,我们先了解一下屏幕大小:

import pyautogui

获取屏幕的宽度和高度

screen_width, screen_height = pyautogui.size()
print(f"屏幕宽度: {screen_width}, 屏幕高度: {screen_height}")
2. 移动鼠标
我们可以将鼠标移动到屏幕的特定位置:

import pyautogui
import time

移动鼠标到坐标(100, 100)

pyautogui.moveTo(100, 100, duration=1) # duration是移动所需时间(秒)

从当前位置相对移动

pyautogui.move(100, 0, duration=1) # 向右移动100像素
3. 鼠标点击
点击操作也很简单:

import pyautogui
import time

先移动再点击

pyautogui.moveTo(100, 100, duration=1)
pyautogui.click() # 在当前位置左键单击

也可以直接在指定位置点击

pyautogui.click(x=200, y=200) # 在(200, 200)处左键单击

右键点击

pyautogui.rightClick(x=300, y=300)

双击

pyautogui.doubleClick(x=400, y=400)
4. 拖拽操作
有时我们需要拖动一些东西:

import pyautogui
import time

从(100, 100)拖拽到(300, 300)

pyautogui.dragTo(300, 300, duration=1, button=‘left’)

从当前位置相对拖拽

pyautogui.drag(100, 0, duration=1, button=‘left’) # 向右拖拽100像素
5. 滚动鼠标滚轮
import pyautogui
import time

向上滚动10个单位

pyautogui.scroll(10)

向下滚动10个单位

pyautogui.scroll(-10)
四、键盘操作
PyAutoGUI不仅能控制鼠标,还能模拟键盘输入:

  1. 输入文字
    import pyautogui
    import time

点击一个文本框

pyautogui.click(x=100, y=100)
time.sleep(0.5) # 等待点击生效

输入文字

pyautogui.write(‘Hello, PyAutoGUI!’)

可以控制输入速度

pyautogui.write(‘这是慢速输入’, interval=0.2) # 每个字符间隔0.2秒
2. 特殊按键
对于Shift、Ctrl、Alt等特殊按键,可以这样使用:

import pyautogui
import time

按下并释放一个键

pyautogui.press(‘enter’)

组合键

pyautogui.hotkey(‘ctrl’, ‘c’) # 复制
pyautogui.hotkey(‘ctrl’, ‘v’) # 粘贴

按下不释放

pyautogui.keyDown(‘shift’)
pyautogui.press(‘4’) # 输入$
pyautogui.keyUp(‘shift’)
PyAutoGUI支持的特殊按键名称包括:

enter(回车)
esc(退出)
tab(制表符)
alt, ctrl, shift(组合键)
up, down, left, right(方向键)
f1到f12(功能键)
等等……
五、屏幕截图和图像识别
PyAutoGUI的高级功能是可以截图和查找屏幕上的图像位置:

  1. 屏幕截图
    import pyautogui

对整个屏幕进行截图

screenshot = pyautogui.screenshot()
screenshot.save(‘我的屏幕截图.png’)

对指定区域截图

region_screenshot = pyautogui.screenshot(region=(0, 0, 300, 400)) # 左上角300x400的区域
region_screenshot.save(‘区域截图.png’)
2. 图像定位
这个功能非常有用,可以找到屏幕上特定图像的位置:

import pyautogui

查找屏幕上的图像位置

try:
position = pyautogui.locateOnScreen(‘目标图片.png’)
print(f"找到图片,位置: {position}")

# 获取图像的中心点
center = pyautogui.center(position)
print(f"图片中心点: {center}")

# 点击图像中心
pyautogui.click(center)

except:
print(“未找到指定图片”)
图像定位在自动化测试中特别有用,比如自动点击某个按钮、识别特定的界面元素等。

六、安全机制
PyAutoGUI有一个安全机制,当你把鼠标快速移动到屏幕的左上角时,程序会暂停(引发异常)。这个功能是为了防止程序失控,让你有机会终止程序。

如果你不需要这个功能,可以关闭它:

import pyautogui

关闭故障保护

pyautogui.FAILSAFE = False
但建议保留这个功能,以防万一。

七、小技巧

  1. 添加暂停
    自动化操作最好添加适当的暂停,让程序有时间反应:

import pyautogui
import time

全局暂停设置

pyautogui.PAUSE = 0.5 # 每次操作后暂停0.5秒

或者使用time.sleep

pyautogui.click()
time.sleep(1) # 等待1秒
pyautogui.press(‘enter’)
2. 获取鼠标位置
在编写脚本时,我们经常需要知道要点击的位置坐标,这个小工具很有用:

import pyautogui
import time

print(“请将鼠标移到目标位置,5秒后记录坐标”)
for i in range(5, 0, -1):
print(i)
time.sleep(1)

x, y = pyautogui.position()
print(f"当前鼠标位置:x={x}, y={y}")
3. 消息框
PyAutoGUI还提供了简单的消息框功能:

import pyautogui

显示一个警告框

pyautogui.alert(text=‘操作已完成’, title=‘提示’, button=‘OK’)

确认框

response = pyautogui.confirm(text=‘是否继续?’, title=‘确认’, buttons=[‘是’, ‘否’, ‘取消’])
print(f"用户选择了:{response}")

输入框

name = pyautogui.prompt(text=‘请输入你的名字’, title=‘输入’, default=‘’)
print(f"你好,{name}")

密码输入框

password = pyautogui.password(text=‘请输入密码’, title=‘密码’, default=‘’, mask=‘*’)
PyAutoGUI是一个功能强大的Python自动化库,可以帮助你:

自动化重复性操作
创建简单的自动化测试
编写游戏机器人(虽然有些游戏不允许)
自动填写表格
模拟用户操作
是不是感觉学会了这个,工作效率能提高一大截?

不过要注意,虽然PyAutoGUI很强大,但它并不适合所有自动化任务。如果你在自动化网页操作,可能Selenium更合适;如果是自动化API测试,可能requests库更适合。

学会PyAutoGUI只是自动化的开始,希望这篇文章能帮助你迈出自动化的第一步!

感觉上面的这些东西拼在一起,就可以完成一个按键精灵了。
还是自定义的按键精灵。
而且还支持多种图片的。这个问题我问了一下AI。
PyAutoGUI 和 按键精灵 在功能上相似,但实现方式不同。按键精灵是独立的软件工具,通过模拟键盘和鼠标操作实现自动化;而 PyAutoGUI 是 Python 语言编写的库,需要编写代码实现自动化。 ‌

  • 核心差异

‌按键精灵‌

无需编程,通过录制和回放操作实现自动化。
支持模拟键盘按键、鼠标点击等基础操作。 ‌
‌PyAutoGUI‌

需使用Python代码调用库函数实现自动化。
支持更复杂的操作,如屏幕截图、窗口定位、故障安全保护等。 ‌

  • 扩展性

按键精灵功能相对固定,扩展性有限。
PyAutoGUI可通过Python代码调用其他库(如 pywinauto )实现更复杂的功能。

然后AI还给了一个按键精灵DEMO的小段代码:

import pyautogui
import time

# 模拟按下"Win + R"打开运行对话框
pyautogui.hotkey('win', 'r')
time.sleep(0.5)

# 在运行对话框中输入"notepad"并按回车,打开记事本
pyautogui.typewrite('notepad')
pyautogui.press('enter')

# 等待记事本打开
time.sleep(1)

# 在记事本中写入文字
pyautogui.typewrite('Hello, PyAutoGUI!')

🍑 碰上好的大量知识点的视频想把里面的字幕拼成上图的样子?

1 准备截图工具,
我一般是使用faststone Capture
下载地址见资源下载
2 第一张图一般截一个全的带脸的
在这里插入图片描述
后面的就截字幕的部分就可以了。我一般是设置一个重复截的快捷键。其实不用严格的与第一张同宽。拼图工具会调整为同宽。
在这里插入图片描述
3 整理检查所有图片,看看是不是截图有重复,有遗漏。
在这里插入图片描述
4 打开工具拼合
在这里插入图片描述

完成!

总结及资源下载

截图工具:
系统如何让截图带鼠标指针,推荐两款可以带鼠标指针截图的软件-faststone Capture

另一个截图工具
系统如何让截图带鼠标指针,推荐两款可以带鼠标指针截图的软件-Snipaste

本文章里面所使用的字幕拼接工具:
下载地址:
图片拼接-支持jpg格式,一般用于拼接一个视频里的N多字幕

B站视频讲解用法:
【工具】图片拼接-支持jpg格式,一般用于拼接一个视频里的N多字幕

选择了也要努力,没有远虑必有近忧!

您可能感兴趣的与本文相关的镜像

Python3.8

Python3.8

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

项目张雪峰之巅

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值