[Python进阶] 操纵鼠标:PyAutoGUI

6.4 操纵鼠标:PyAutoGUI

6.4.1 说明

PyAutoGUI是一个Python的GUI自动化工具,它可以让程序自动控制鼠标和键盘的一系列操作。它能够模拟鼠标的移动、点击、拖拽等操作,以及键盘的按键按下和释放等操作。PyAutoGUI还提供了其他功能,如获取屏幕分辨率、判断鼠标是否在屏幕上、显示提示框等。它可以在没有安装其他依赖库的情况下独立运行。PyAutoGUI对于自动化任务、测试脚本的编写以及一些趣味性的项目都非常有用。
注意,PyAutoGUI是跨平台的,它不仅支持Windows,还支持Linux和MAC。
安装:
>>> pip install PyAutoGUI

6.4.2 position()

获取当前鼠标光标的坐标。元组类型,第1个为x坐标,第2个为y坐标。

import pyautogui
from icecream import icx, y = pyautogui.position()
ic(x, y)

21:41:25|> x: 719, y: 470

6.4.3 size()

获取当前屏幕的分辨率,返回结果为元组类型,包括2个元素,分别是:横坐标像素和纵坐标像素。

import pyautogui
from icecream import icx, y = pyautogui.size()
ic(x, y)

21:42:10|> x: 2560, y: 1440

6.4.4 onScreen(x, y=None)

返回给定的xy坐标是否在主屏幕上。请注意,此函数不适用于辅助屏幕。

import pyautogui
from icecream import icic(pyautogui.onScreen(1220, 68))
ic(pyautogui.onScreen(12200, 68))

21:45:48|> pyautogui.onScreen(1220, 68): True
21:45:48|> pyautogui.onScreen(12200, 68): False

6.4.5 mouseDown、mouseUp

模拟将鼠标移动到目标位置后按下或弹起。
参数
x=None 横坐标
y=None 纵坐标
button=PRIMARY 要按下的鼠标按键,可选的有:left、middle、right、primary、secondary,默认为primary
duration 持续时间
tween 渐变
logScreenshot 是否截图,True or False
_pause 是否暂停,True or False

import pyautoguipyautogui.mouseDown(287, 220, logScreenshot=True)
pyautogui.mouseUp(287, 220, logScreenshot=True)

将鼠标移动到指定位置后,按下并弹起,并且在按下和弹起的时候进行全屏截图。生成的图片将会存放在代码文件所在的文件夹内。

6.4.6 click、leftClick、rightClick、middleClick、doubleClick、tripleClick

模拟将鼠标移动到目标位置后完整的点击(包括按下和弹起)。通过这些函数的名字也能知道他们的区别。
参数
x=None 横坐标
y=None 纵坐标
clicks 点击的次数
button=PRIMARY 要按下的鼠标按键,可选的有:left、middle、right、primary、secondary,默认为primary
duration 持续时间
tween 渐变
logScreenshot 是否截图,True or False
_pause 是否暂停,True or False

这个方法和之前的mouseDown、mouseUp差不多,这里也就不多介绍了。

6.4.7 scroll、hscroll、vscroll

滚动鼠标滑轮进行滚动屏幕,滚动的方向(水平、垂直)和系统有关。windows系统中scroll为垂直方向。其它2个则为对应的方向。
参数
Clicks: 滚动量,正数向上滚动,将上方内容滚动到下方(显示更上面的内容),负数反之
X: (int, float, None, tuple, optional): 滚动时,鼠标光标横坐标所在位置,如果是tuple类型则因为光标的横纵坐标
Y: (int, float, None, optional): 滚动时,鼠标光标纵坐标所在位置
LogScreenShot: 是否要截图

6.4.8 moveTo

将鼠标移动到某个位置。
参数
x=None 横坐标
y=None 纵坐标
duration 持续时间
tween 渐变
logScreenshot 是否截图,True or False
_pause 是否暂停,True or False

6.4.9 dragTo

参数
x=None 横坐标
y=None 纵坐标
duration 持续时间
tween 渐变
button=PRIMARY 要按下的鼠标按键,可选的有:left、middle、right、primary、secondary,默认为primary
logScreenshot 是否截图,True or False
_pause 是否暂停,True or False
mouseDownUp 是否要在最后点击一次
拖动某个软件到屏幕右边

import pyautoguipyautogui.moveTo(422, 23)
pyautogui.dragTo(1422, 23, duration=0.5)

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

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

相关文章

用java语言写一个RSA方式的数据签名、验签,服务端和客户端双方各生成一对RSA公私钥,并交换公钥。己方私钥用于加密,对方公钥用于验签,代码实例类编写。

以下是一个使用Java编写的RSA方式的数据签名和验签的示例代码。在该示例中,服务端和客户端分别生成RSA公私钥对,并进行公钥交换。 java Copy code import java.nio.charset.StandardCharsets; import java.security.*; import java.util.Base64; publi…

软件测试用例设计方法-因果图法

边界值法是等价类划分法的补充,所以,它们是一对搭档。 那么,判定表法有没有它的搭档呢? 答案是,有的。那就是本篇文章分享的用例设计方法—— 因果图法 。 定义 因果图法: 用来处理等价类划分和边界值…

Java:自定义实现SpringBoot Starter

目录 1、自定义Starter1.1、项目结构1.2、代码实现1.3、测试1.4、打包 2、引用Starter2.1、项目结构2.2、引入starter 3、重写默认配置4、重写默认实现5、实现Enable注解5.1、starter项目创建注解5.2、业务工程使用注解 6、元数据7、参考文章 1、自定义Starter 1.1、项目结构 …

三维地图开发三维地图服务器

三维地图开发三维地图服务器 发布时间:2020-03-03 版权: 搭建离线地图服务主要是两个步骤:一是:下载离线地图服务需要的地图数据;二是:将下载的离线地图数据发布成地图服务;只有做好这两步&…

ChatGPT-GPT4:将AI技术融入科研、绘图与论文写作的实践

2023年我们进入了AI2.0时代。微软创始人比尔盖茨称ChatGPT的出现有着重大历史意义,不亚于互联网和个人电脑的问世。360创始人周鸿祎认为未来各行各业如果不能搭上这班车,就有可能被淘汰在这个数字化时代,如何能高效地处理文本、文献查阅、PPT…

出差学小白知识No5:ubuntu连接开发板|上传源码包|板端运行的环境部署

1、ubuntu连接开发板&#xff1a; 在ubuntu终端通过ssh协议来连接开发板&#xff0c;例如&#xff1a; ssh root<IP_address> 即可 这篇文章中也有关于如何连接开发板的介绍&#xff0c;可以参考SOC侧跨域实现DDS通信总结 2、源码包上传 通过scp指令&#xff0c;在ub…

python使用dataset快速使用SQLite

目录 一、官网地址 二、安装 三、 快速使用 一、官网地址 GitHub - pudo/dataset: Easy-to-use data handling for SQL data stores with support for implicit table creation, bulk loading, and transactions. 二、安装 pip install dataset 如果是mysql&#xff0c;则…

R语言有关模型方面的函数(model.)介绍-model.matrix

R语言有关模型方面的函数(model.)介绍-model.matrix 引言model.matrix简单作用提取设计矩阵对有序因子与无序因子的处理(模型相关)手动编写contr.系列的函数写在最后引言 最近闲暇时间大量阅读了一些机器学习方面的R包源码,在此对阅读过程中的一些实用但是不常见的函数进行…

堆/二叉堆详解[C/C++]

前言 堆是计算机科学中-类特殊的数据结构的统称。实现有很多,例如:大顶堆,小顶堆&#xff0c;斐波那契堆&#xff0c;左偏堆&#xff0c;斜堆等等。从子结点个数上可以分为二汊堆&#xff0c;N叉堆等等。本文将介绍的是二叉堆。 二叉堆的概念 1、引例 我们小时候&#xff0c;基…

left join时筛选条件对查询结果的

-- 创建表 CREATE TABLE table1 (id int(11) NOT NULL AUTO_INCREMENT,card_num varchar(60) DEFAULT NULL,customer_id varchar(60) DEFAULT NULL,PRIMARY KEY (id) ) ENGINE InnoDBAUTO_INCREMENT 12DEFAULT CHARSET utf8mb4 COMMENT 测试表1;-- 创建表 CREAT…

[OpenCV-dlib]人脸识别功能拓展-通过随机要求头部动作实现活体检测

引言 在现代计算机视觉中&#xff0c;面部检测和姿势识别是一个重要的领域&#xff0c;它在各种应用中发挥着关键作用&#xff0c;包括人脸解锁、表情识别、虚拟现实等。本文将深入探讨一个使用Python编写的应用程序&#xff0c;该应用程序结合了多个库和技术&#xff0c;用于…

44springboot摄影跟拍预定管理系统

大家好✌&#xff01;我是CZ淡陌。一名专注以理论为基础实战为主的技术博主&#xff0c;将再这里为大家分享优质的实战项目&#xff0c;本人在Java毕业设计领域有多年的经验&#xff0c;陆续会更新更多优质的Java实战项目&#xff0c;希望你能有所收获&#xff0c;少走一些弯路…

basic_sr介绍

文章目录 pytorch基础知识和basicSR中用到的语法1.Sampler类与4种采样方式2.python dict的get方法使用3.prefetch_dataloader.py4. pytorch 并行和分布式训练4.1 选择要使用的cuda4.2 DataParallel使用方法常规使用方法保存和载入 4.3 DistributedDataParallel 5.wangdb 入门5.…

详解js数组操作——filter()方法

引言 在JavaScript中&#xff0c;我们经常需要对数组进行筛选&#xff0c;以便根据特定的条件获取所需的元素。而JavaScript的filter()方法就是一个非常有用的工具&#xff0c;它可以帮助我们轻松地筛选数组中的元素。本文将介绍如何使用filter()方法&#xff0c;以及一些实用…

react+antd+Table实现表格初始化勾选某条数据,分页切换保留上一页勾选的数据

加上rowKey这个属性 <Table rowKey{record > record.id} // 加上rowKey这个属性rowSelection{rowSelection}columns{columns}dataSource{tableList}pagination{paginationProps} />

众佰诚:抖音小店的体验分什么时候更新

随着移动互联网的发展&#xff0c;越来越多的电商平台开始涌现&#xff0c;其中抖音小店作为一种新型的电商模式&#xff0c;受到了许多用户的欢迎。然而&#xff0c;对于抖音小店的体验分更新时间&#xff0c;很多用户并不是很清楚。本文将对此进行详细的解答。 首先&#xff…

SimpleCG图像操作基础

上一篇我们介绍了程序的交互功能&#xff0c;就可以编写一些简单的游戏了&#xff0c;例如贪吃蛇、扫雷、俄罗斯方块、五子棋等&#xff0c;都可以使用图形函数直接绘制&#xff0c;在后续文章中将逐一展示。不过编写画面丰富游戏离不开图像&#xff0c;所以本篇我们介绍一下基…

智能合同和TikTok:揭示加密技术的前景

在当今数字化时代&#xff0c;智能合同和加密技术都成为了技术和商业世界中的热门话题。它们代表了一个崭新的未来&#xff0c;有着潜在的巨大影响。 然而&#xff0c;你或许从未想过将这两者联系在一起&#xff0c;直到今天。本文将探讨智能合同和TikTok之间的联系&#xff0…

代码随想录算法训练营Day56|动态规划14

代码随想录算法训练营Day56|动态规划14 文章目录 代码随想录算法训练营Day56|动态规划14一、1143.最长公共子序列二、 1035.不相交的线三、53. 最大子序和 动态规划 一、1143.最长公共子序列 class Solution {public int longestCommonSubsequence(String text1, String text2…

sql聚合函数嵌套问题 aggregate function cannot contain aggregate parameters

在需求的应用场景&#xff0c;需要对create_time字段求最小值并求和&#xff0c;刚开始理所当然写成像下面这样&#xff1a; SUM(COALESCE (CASE WHEN MIN(crl.create_time) BETWEEN date_add(date_sub(current_date(), 1), -1 * (open_case_day_num % 6)) AND current_date()…