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。

相关推荐
天诰6 小时前
SA-K-11 检索会消失吗与四个未解问题
java·服务器·人工智能·python·机器学习·ai编程
benchmark_cc7 小时前
用 QuantDash 读取美股行情:AAPL.US 的运行前检查、排错顺序与数据校验清单
python·数据分析·pandas·量化交易·股票数据·quantdash
羲云网络10 小时前
GPT Image 2.6 接入指南:Flare、Sunburst 怎么选,编辑失败如何排查
人工智能·python·aigc·图像生成·acedatacloud
橙橙笔记13 小时前
具身智能的学习 - 完成一个机械臂 第1节
python·学习·机械臂·具身智能
小小张说故事13 小时前
Python 的 class 语句到底执行了什么?拆开 __prepare__、metaclass.__new__ 和那个被讲反的 __set_name__ 顺序
python
天天被压力16 小时前
【A股分钟级高频数据完全手册 #07】北交所历史分钟K线接口:京市Pro版分时批量
java·人工智能·python
天天被压力16 小时前
【A股分钟级高频数据完全手册 #08】股票日、分时数据接口对比:普通分时与Pro版差异实测
java·人工智能·python
特立独行的猫A16 小时前
AI 时代,我为什么推荐用 cj-tauri 开发桌面应用
java·后端·python
小lo想吃棒棒糖16 小时前
把机器人训练从 GPU 搬到昇腾 NPU:启元 Q1 起身动作 PPO 训练全记录
python·机器人·昇腾·启元机器人
Thanks_ks16 小时前
【第 006 讲】搭建 PyCharm 开发环境:PyCharm 的下载与安装 | 初始设置与常用配置
ide·python·pycharm·开发工具·jetbrains·开发环境·集成开发环境