Python 有趣的模块之pynupt——通过pynput控制鼠标和键盘

news2024/11/17 3:31:39

Python 有趣的模块之pynupt ——通过pynput控制鼠标和键盘

文章目录

  • Python 有趣的模块之pynupt ——通过pynput控制鼠标和键盘
    • 1️⃣简介
    • 2️⃣鼠标控制与移动
    • 3️⃣键盘控制与输入
    • 4️⃣结语📢

1️⃣简介

🚀🚀🚀学会控制鼠标和键盘是实现自动化的捷径!🚀🚀🚀

pynput是第三方库,所以在使用pynput之前需要下载pynput包。

  • 下载方式1:在终端输入pip install pynput下载包
  • 下载方式2:进入pypi官网:https://pypi.org➡️搜索pynput➡️选择版本➡️点击pip install pynput
  • 下载方式3:点击底部Python ackages➡️搜索pynput➡️点击Install

请添加图片描述




2️⃣鼠标控制与移动

⭐第一步:为了控制和模拟鼠标移动,所以需要从pynput中导入mouse模块。

from pynput import mouse 		# 导入mouse模块

⭐第二步:使用Controller()方法。

m = mouse.Controller()            # 创建一个鼠标

⭐第三步:移动鼠标在屏幕上的位置。

屏幕坐标以(0,0)为基准点位于屏幕的左上角,往右移动x轴坐标增加,往左移动x轴坐标减小。往下移动y轴坐标增加,往上移动y轴坐标减小。

可以使用print()打印鼠标的位置。

请添加图片描述
1.🍭绝对位置:

m.position = (800,600)           # 将鼠标移动到指定位置
print(f'鼠标位置为:{m.position}') # 打印鼠标位置

2.🍭相对位置:

m.move(100,100)					# 以(0,0)或上一个position的位置为准
print(f'鼠标位置为:{m.position}') #打印鼠标位置

第四步:模拟鼠标按键:

  1. 🍭单击左键:

📖方式一:

m.press(mouse.Button.left)          # 按下鼠标左键(单击)
m.release(mouse.Button.left)        # 松开鼠标左键

🌌补:使用press+position+release可实现拖拽功能

🌟注意:使用press按下后,必须要使用release松开。否则相对于现实中操作鼠标一直按下左键不松手

📖方式二:

m.click(mouse.Button.left, 1)         # 单击鼠标左键

🙌 区别:直接完成了一次点击松手操作。

  1. 🍭单击右键:

📖方式一:

m.press(mouse.Button.right)          # 按下鼠标右键(单击)
m.release(mouse.Button.right)        # 松开鼠标右键

📖方式二:

m.click(mouse.Button.right, 1)         # 单击鼠标右键
  1. 🍭双击:
m.click(mouse.Button.left, 2)         # 双击(左键)
  1. 🍭鼠标滚轮:

类似于上述将的position,x轴坐标增加往右移动,x轴坐标减小往左移动。y轴坐标增加往下移动,y轴坐标减小往上移动。

x轴使用较少,绝大部分页面不会出现左右滚动条。

m.scroll(0,2)                       # 向下移动

📘完整代码⬇️:

from pynput import mouse         # 导入mouse模块
m = mouse.Controller()           # 创建一个鼠标
m.position = (800,600)           # 将鼠标移动到指定位置
print(f'鼠标位置为:{m.position}')    # 打印鼠标位置
m.move(100,100)                     # 相对于(800,600)在移动(100,100)
print(f'鼠标位置为:{m.position}')    # 打印鼠标位置
# 方式一
# m.press(mouse.Button.left)          # 按下鼠标左键(单击)
# m.release(mouse.Button.left)        # 松开鼠标左键
# 方式二
m.click(mouse.Button.left, 1)         # 单击鼠标左键

m.press(mouse.Button.right)          # 按下鼠标右键(单击)
m.release(mouse.Button.right)        # 松开鼠标右键
m.click(mouse.Button.right, 1)		 # 单击鼠标右键

# 双击
m.click(mouse.Button.left, 2)         # 双击(左键)

m.scroll(0,2)                       # x 左右滚动, y 上



3️⃣键盘控制与输入

⭐第一步:为了键盘输入,所以需要从pynput中导入keyboard模块。

from pynput import keyboard         # 导入keyboard模块

⭐第二步:使用Controller()方法。

k = keyboard.Controller()           # 创建一个键盘

⭐第三步:模拟按键

k.press('a')          # 按下a
k.release('a')        # 松开a

🌟注意:引号内可以是任意字符包括汉字,但只能是单个。后续会教大家输入一句话。

⭐第四步:按特殊键(空格,shift等)

k.press(keyboard.Key.space)         # 按下空格键
k.release(keyboard.Key.space)       # 松开空格键
k.press(keyboard.Key.shift)         # 按下shift键
k.release(keyboard.Key.shift)       # 松开shift键

⭐第五步:输入一句话

k.type('Hello everybody!')

📘完整代码⬇️:

from pynput import keyboard         # 导入keyboard模块
k = keyboard.Controller()           # 创建一个键盘

k.press('a')          # 按下a
k.release('a')        # 松开a

k.press(keyboard.Key.space)         # 按下空格键
k.release(keyboard.Key.space)       # 松开空格键
k.press(keyboard.Key.shift)         # 按下shift键
k.release(keyboard.Key.shift)       # 松开shift键

k.type('Hello everybody!')



4️⃣结语📢

如果你学会了这些还不知道用pynput来干什么。那我教你可以实现打开应用,自动浏览网页,与女朋友微信聊天等。应用程序是无限的,你可以使用这种方法构建任何类型的自动化工具。

🎁打开软件代码分享:https://blink.csdn.net/details/1511416
🎁微信发送信息代码分享: https://blink.csdn.net/details/1511454




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

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

相关文章

Mongodb连接数据库

1.初始化 npm init 2.安装mongoose npm i mongoose 3.导入mongoose const mongooserequire("mongoose") 4.连接mongodb服务 mongoose.connect("mongodb://127.0.0.1:27017/user") 说明:mongodb是协议,user是数据库,如果没有会自动创…

经OPA运放后,读取电压出错

问题: 在焊接完两块板子上传程序测试时,程序上传完成,有一块板子在使用OPA读取电压时,在未插入电阻情况下,电压读取是正确的,在插入50K电压后,电压值应该是之前的两倍,但是电压变化…

unittest单元测试2

目录 unittest框架解析 构建测试套件 用例的执行顺序 unittest断言 HTML报告生成 异常捕捉与错误截图 数据驱动 🎁更多干货 完整版文档下载方式: unittest框架解析 unittest 是python 的单元测试框架,unittest 单元测试提供了创建测…

怎么把CAJ转换成PDF文件格式?分享这两个方法!

随着互联网的发展,中国知网(CNKI)已成为许多学术研究人员和学生们获取文献资料的重要来源。在CNKI上,常见的文件格式是CAJ(China Academic Journals)。然而,由于个人喜好或特定需求,我们有时会希望将这些CA…

PDF文档转化为HTML网页格式怎么操作?分享这三个方法给大家!

PDF文档作为一种常见的文档格式,广泛应用于各个领域。然而,如果您想将PDF文档直接发布到网站上,或是想在网页上进行展示,您可能需要将PDF转化为HTML格式。在此,我为大家介绍三种将PDF转化为HTML格式的方法。 方法一&am…

mysql语句练习题,创建表create ,枚举中文字符集设置,修改(update)

作业: 1.创建表: 创建员工表employee,字段如下: id(员工编号),name(员工名字),gender(员工性别),salary(员工薪…

d3dx9_43.dll丢失怎么解决(分享三个解决方法)

d3dx9_43.dll是一个Microsoft DirectX的动态链接库文件,它包含了一系列用于图形、音频和输入的功能和接口。它是DirectX 9的一部分,用于提供游戏和其他图形应用程序所需的图形和声音效果。如果计算机中d3dx9_43.dll丢失,会造成很多游戏无法打…

opencv图片根据规则改变颜色

解析 1. 读入图片 2.通道分离 3.像素值在【100,200】之间,赋值128。大于200赋值255,小于100赋值0。 源码 import cv2 img_raw_path"past/unet-test_result0-0-1-0.png" img_rawcv2.imread(img_raw_path) (r,g,b)cv2.split(img_…

运动控制介绍

运动控制介绍 1 介绍1.1 概述1.2 运动控制的基本架构1.3 常见的控制功能1.4 运动控制研究的问题分类位置变化问题周期式旋转速度变化问题 1.5 知识体系1.6 路径规划 和 轨迹规划区别与联系1.7 运动控制系统 2 《运动控制系统》[班华 李长友 主编] 摘要1 绪论1.1 运动控制研究的…

信息系统项目管理师(第四版)教材精读思维导图-第二章信息技术发展

请参阅我的另一篇文章,综合介绍软考高项: 信息系统项目管理师(软考高项)备考总结_计算机技术与软件专业技术_铭记北宸的博客-CSDN博客 思维导图源文件下载: https://download.csdn.net/download/hanjingjava/88023847 …

SpringBoot 如何使用 EmbeddedDatabaseBuilder 进行数据库集成测试

SpringBoot 如何使用 EmbeddedDatabaseBuilder 进行数据库集成测试 在开发 SpringBoot 应用程序时,我们通常需要与数据库进行交互。为了确保我们的应用程序在生产环境中可以正常工作,我们需要进行数据库集成测试,以测试我们的应用程序是否能…

非线性规划快速入门和练习题集

目录 定义 标准形式 练习题1 练习题2 练习题3 定义 当目标函数或者约束条件中含有非1次项的时候,会出现非线性函数的规划。 标准形式 ​​​​​​​ ​​​​​​​ ​​​​​​​ ​​​​​​​ 其中f(x)是标准函数,A,b,Ae…

Basic——C++类型转换(转型操作符详解)

C转型操作符 1.C语言类型转换存在的隐患2.static_cast3.const_cast介绍测试案例 4.dynamic_cast5.reinterpret_cast 1.C语言类型转换存在的隐患 数据丢失:当将一个较大的数据类型转换为较小的数据类型时,可能会导致数据丢失。例如,将一个浮点…

mac M1 安装nacos

背景 m1不支持本地安装,只能用docker : “由于 rocksdb 暂不支持 M1 平台,所以使用 Zulu JDK 的小伙伴们运行 Nacos 2.x 版本会报错,网上通用的解决方案是使用 Oracle JDK 来运行 Nacos 2.x 版本,但对于强迫症的我来说…

计算机网关原理、子网掩码原理(路由器、交换机)

文章目录 网关网关的历史网关的功能网关的原理相关疑问为什么用子网掩码与IP地址进行与运算来确定一个IP地址所属的子网?网关地址是谁定的,是配置路由的人随意定的吗?(配置人员定的)如何正确设置网关地址(路…

java的断言

断言介绍 Java的断言就是一条assert 声明,其中包含了一个布尔表达式。 断言可以被启用或者禁用,默认是禁用的。 断言被启用的情况下,执行到断言的声明,就会计算布尔表达式的值。如果表达式的值为false,那么就会抛出一…

【Elasticsearch】安装elasticsearch

目录 安装elasticsearch 1.部署单点es 1.1.创建网络 1.2.加载镜像 1.3.运行 2.部署kibana 2.1.部署 2.2.DevTools 3.安装IK分词器 3.1.在线安装ik插件(较慢) 3.2.离线安装ik插件(推荐) 1)查看数据卷目录 …

十三、Docker Compose使用和主要功能

学习参考:尚硅谷Docker实战教程、Docker官网、其他优秀博客(参考过的在文章最后列出) 目录 一、核心概念二、主要功能二、docker compose常用命令三、docker compose 案例3.1 自己写一个微服务模块3.2 用Dockerfile将上面的模块编排(不使用compose)3.3 使用compose编…

滑动平均值滤波(CODESYS ST源代码)

有关滑动平均值滤波算法的详细介绍请查看下面文章链接,这里不再赘述: 博途PLC各种平均值滤波算法对比(SCL+梯形图代码)_模拟量平均值滤波梯形图程序_RXXW_Dor的博客-CSDN博客此文会对比各种滤波算法的优劣,给出具体算法描述和测试代码算术平均值不区分原始数据的质量,特…