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

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')        # 松开ak.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.hqwc.cn/news/14480.html

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

相关文章

基于Unity2017版本的2D3D Infinite Runner Engine 1.5.1二维三维跑酷游戏模板

基于Unity2017版本的2D3D Infinite Runner Engine 1.5.1二维三维跑酷游戏模板 有多种游戏模式 还有个竖屏的玩法 工程地址:https://download.csdn.net/download/Highning0007/88020755

axure可视化大屏模板200例 •axure模板 大屏可视化 •axure数据可视化原型 •axure可视化组件 •axure

可视化axure原型可视化大屏模板200例,带动画效果,可直接复用 axure可视化大屏模板200例 axure可视化大屏模板200例数据可视化原型可视化组件下载—无极低码 axure模板 大屏可视化axure数据可视化原型axure可视化组件axure原型演示axure绘制界面原型图…

IDEA中配置Java反编译工具javap -c

IDEA中配置Java反编译工具javap -c 一、前置条件二、新建外部工具三、使用方式 欢迎访问我的个人博客:https://wk-blog.vip 一、前置条件 确保 IDEA 已经开启了编译 javac 。默认 IDEA 是开启的。 二、新建外部工具 首先进入 Settings ---> Tools ---> Ext…

基于“SRP模型+”多技术融合在生态环境脆弱性评价模型构建、时空格局演变分析与RSEI 指数的生态质量评价及拓展应用

查看原文>>>基于“SRP模型”多技术融合在生态环境脆弱性评价模型构建、时空格局演变分析与RSEI 指数的生态质量评价及拓展应用 本文集成云端、桌面端等环境,结合遥感云计算、GIS空间分析,R语言统计分析的优势,以分析生态环境脆弱性…

Spring MVC教程

Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。 Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。 使用 Spring 可插入的 MVC 架构,从而在使用Spring进行WEB开发时,可以选择使用Spring的Spring MVC框架或集…

【C语言】你知道浮点数是怎么存储的吗?

前言 🎈大家好,我是何小侠🎈 🍃大家可以叫我小何或者小侠🍃 💐希望能通过写博客加深自己对于学习内容的理解💐 🌸也能帮助更多人理解和学习🌸 积学以储宝,酌…

1.Git使用技巧-基础原理

Git 使用技巧 文章目录 Git 使用技巧前言一、Git 安装二、搭建服务端仓库三、搭建客户端1. git 通信2. git支持的通信协议本地拉取代码3. 配置用户名和密码查看配置 查看git 帮助Git 工作流程总结参考 前言 Git 是一个开源的分布式代码版本控制系统,用于敏捷高效地…

springboot---定时任务实现

定时任务 1. scheduled注解实现1.1. 用法1.2. 参数详解1.2.1. cron1.2.2. zone1.2.3. fixedDelay1.2.4. fixedDelayString1.2.5. fixedRate1.2.6. fixedRateString1.2.7. initialDelay1.2.8. initialDelayString 1.3. 示例 1. scheduled注解实现 1.1. 用法 任意类中创建一个方…

vue 目录

vue学习资源 vue.js中文官网: http://cn.vuejs.org/ vue.js源码: https://github.com/vuejs/vue vue.js官方工具: https://github.com/vuejs vue.js英文官网: https://vuejs.org/ vue全家桶 介绍 介绍 【 Vue全家桶 Vue&#xff…

从零开始 Spring Boot 67:JPA 中的惰性元素

从零开始 Spring Boot 67:JPA 中的惰性元素 图源:简书 (jianshu.com) 惰性加载带来的问题 在实体类之间建立关系时,可以选择“惰性加载”,比如: Entity public class Student {// ...OneToMany(mappedBy "stu…

软件设计模式与体系结构-设计模式-行为型软件设计模式-状态模式

五、状态模式 概念 与策略模式类似,状态模式将不同状态下的行为封装在不同的类中,每个类代表一个状态 状态模式的组成 Context:定义了与客户程序的接口,它保持了一个concreteState的代表现在状态的实例State:定义了…

数据增强之裁剪、翻转与旋转

文章和代码已经归档至【Github仓库:https://github.com/timerring/dive-into-AI 】或者公众号【AIShareLab】回复 pytorch教程 也可获取。 文章目录 数据增强 Data Augmentation裁剪Croptransforms.CenterCroptransforms.RandomCroptransforms.RandomResizedCroptra…