python-自动化篇-终极工具-用GUI自动控制键盘和鼠标-pyautogui

文章目录

  • 用GUI自动控制键盘和鼠标
  • pyautogui 模块
  • 鼠标
    • 屏幕位置------移动地图------pyautogui.size
    • 鼠标位置------自身定位------pyautogui.position()
    • 移动鼠标------pyautogui.moveTo
    • 拖动鼠标
    • 滚动鼠标
  • 键盘
    • 按下键盘
    • 释放键盘
  • 开始与结束
    • 通过注销关闭所有程序

用GUI自动控制键盘和鼠标

在计算机上自动化任务的终极工具,就是写程序直接控制键盘和鼠标。这些程序可以控制其他应用,向它们发送虚拟的击键和鼠标点击,就像你自己坐在计算机前与应用交互一样。

"图形用户界面自动化",或简称为"GUI 自动化"。有了 GUI 自动化,你的程序就像一个活人用户坐在计算机前一样,能做任何事情。

pyautogui 模块

pyautogui 模块可以向 Windows、OS X 和 Linux 发送虚拟按键和鼠标点击。

鼠标

图像记忆:

将操作鼠标放到"日常生活中的地图导航":

出门前:先有地图才能知道行走的范围(size大小)pyautogui.size;后有自身的位置,从家出发,就是家的地址pyatuogui.postion。

出门时:移动(move)去地图的那个点pyautogui.moveTo;

屏幕位置------移动地图------pyautogui.size

手握地图心不慌--根据横纵坐标移动

pyautogui.size() 函数返回两个整数的元组,包含屏幕的宽和高的像素数。

python 复制代码
import pyautogui
pyautogui.size()

鼠标位置------自身定位------pyautogui.position()

通过调用 pyautogui.position() 函数,可以确定鼠标当前的位置。它将返回函数调用时,鼠标 x、y 坐标的元组。在交互式环境中输入以下内容,每次调用后请移动鼠标:

python 复制代码
>>> import pyautogui
>>> pyautogui.position
<function position at 0x00000210A1DDE3E0>
>>> pyautogui.position()
Point(x=577, y=177)

移动鼠标------pyautogui.moveTo

pyautogui.moveTo() 函数将鼠标立即移动到屏幕的指定位置。表示 x、y 坐标的整数值分别构成了函数的第一个和第二个参数。可选的 duration 整数或浮点数关键字参数,指定了将鼠标移到目的位置所需的秒数。如果不指定,默认值是零,表示立即移动(在 PyAutoGUI 函数中,所有的 duration 关键字参数都是可选的)。

python 复制代码
import pyautogui
for i in range(10):
	pyautogui.moveTo(100, 100, duration=0.25)
	pyautogui.moveTo(200, 100, duration=0.25)
	pyautogui.moveTo(200, 200, duration=0.25)
	pyautogui.moveTo(100, 200, duration=0.25)
# 这个例子根据提供的坐标,以正方形的模式顺时针移动鼠标,移动了 10 次。每次移动耗时 0.25 秒,因为有关键字参数指定 duration=0.25。如果没有指定函数调用的第三个参数,鼠标就会马上从一个点移到另一个点。

拖动鼠标

滚动鼠标

键盘

按下键盘

释放键盘

开始与结束

通过注销关闭所有程序

停止失去控制的 GUI 自动化程序,最简单的方法可能是注销,这将关闭所有运行的程序。在 Windows 和 Linux 上,注销的热键是 Ctrl-Alt-Del。

相关推荐
kyrie_sakura20 分钟前
大模型学习7 -- 深度学习2 -- 张量
python·深度学习
智鸟科技GemeOpen开发者智能设备1 小时前
智能插座二次开发如何接入Home Assistant,从零开始完整工程实现(Python+React)
开发语言·python·物联网·react.js·智能家居
hqyjzsb1 小时前
法律 Prompt 干货:搭建合同审查提示词要包含哪些要素
开发语言·人工智能·python·职场和发展·数据分析·prompt·业界资讯
Andreapiki1 小时前
风险审计校招技术栈拆解:SQL、Python、Power BI在2026届JD中的真实权重
数据库·python·sql
2601_966949652 小时前
股票池发生变化后,如何高效更新行情数据?从全量刷新到增量同步
开发语言·python·数据分析·pandas·量化交易·股票数据·quantdash
玖石书2 小时前
python-uv-windows环境安装方案
windows·python·uv
happylifetree2 小时前
Python06-08:Python开发工具PyCharm安装
python·pycharm
liuchangng2 小时前
类Jev项目Kev从入门到实战(1):Kev 是什么——不开权重也能自训的决策模型
人工智能·python·jev·kev·决策模型
leihefeng3 小时前
PX06-对比两个 Excel 文件的差异:从逐单元格到生产级实现
python·excel
Ticnix3 小时前
MCP 上个月把自己推翻重写了:Session 没了、Sampling 废了——你学的教程还停在 2025
python·agent·全栈