Python 有趣的模块之pynupt——通过pynput控制鼠标和键盘
写在前面
Python中有许多有趣和强大的模块,其中一个非常有趣的模块就是pynupt。pynupt是基于pynput模块的一个封装,用于控制鼠标和键盘。它可以实现自动化操作和游戏外挂等功能。
本文将详细介绍pynupt模块的使用方法和常见的功能。
1. 安装pynput模块
在开始使用pynupt之前,我们需要先安装pynput模块。可以使用以下命令进行安装:
pip install pynput
2. pynupt模块基本操作
pynupt提供了一些基本的操作鼠标和键盘的方法。下面是一个简单的示例,可以实现模拟按键和移动鼠标的功能:
import pynupt
# 模拟按键
pynupt.press("a") # 按下'a'键
pynupt.release("a") # 释放'a'键
# 移动鼠标
mouse = pynupt.Mouse()
mouse.move(100, 100) # 移动到(100, 100)坐标
这个示例中,我们使用了pynupt的press和release方法来模拟按键操作,使用Mouse类的move方法来移动鼠标到指定位置。
3. pynupt模块高级操作
pynupt不仅支持基本的操作,还支持一些高级操作。下面我们将介绍一些常见的高级操作。
3.1 模拟按键组合
有时候我们需要模拟按键组合,比如Ctrl+C、Alt+Tab等。pynupt提供了一些方法来实现模拟按键组合。下面是一个示例,可以实现模拟Ctrl+C的功能:
import pynupt
keyboard = pynupt.Keyboard()
keyboard.press(pynupt.Key.ctrl)
keyboard.press('c')
keyboard.release('c')
keyboard.release(pynupt.Key.ctrl)
在这个示例中,我们使用Keyboard类的press和release方法模拟按下和释放Ctrl和C键,从而实现Ctrl+C的功能。
3.2 监听键盘和鼠标事件
pynupt还可以监听键盘和鼠标事件。我们可以使用Listener类来监听事件。下面是一个示例,可以监听键盘事件:
import pynupt
def on_press(key):
try:
print('按下键:{0}'.format(key.char))
except AttributeError:
print('按下键:{0}'.format(key))
def on_release(key):
print('释放键:{0}'.format(key))
with pynupt.Listener(on_press=on_press, on_release=on_release) as listener:
listener.join()
在这个示例中,我们定义了两个函数on_press和on_release来处理按下和释放键盘事件。然后使用Listener类来监听键盘事件,并将on_press和on_release函数作为参数传递给Listener类。最后使用join方法启动Listener类。
类似的,我们也可以监听鼠标事件。下面是一个示例,可以监听鼠标事件:
import pynupt
def on_move(x, y):
print('移动到({0}, {1})'.format(x, y))
def on_click(x, y, button, pressed):
print('点击({0}, {1})的{2}键'.format(x, y, button))
if not pressed:
# 释放鼠标
return False
def on_scroll(x, y, dx, dy):
print('滚动({0}, {1})的({2}, {3})'.format(x, y, dx, dy))
with pynupt.Listener(on_move=on_move, on_click=on_click, on_scroll=on_scroll) as listener:
listener.join()
在这个示例中,我们定义了三个函数on_move、on_click和on_scroll来处理移动、点击和滚动鼠标事件。然后使用Listener类来监听鼠标事件,并将on_move、on_click和on_scroll函数作为参数传递给Listener类。最后使用join方法启动Listener类。
4. pynupt在自动化测试中的应用
pynupt可以在自动化测试中发挥重要的作用。我们可以使用pynupt来模拟用户输入、点击和移动等操作,从而对系统进行自动化测试。下面是一个示例,可以模拟用户在百度搜索输入框中输入关键字并点击搜索按钮:
import pynupt
import time
def input_and_search(keywords):
keyboard = pynupt.Keyboard()
mouse = pynupt.Mouse()
mouse.move(500, 500) # 将鼠标移动到屏幕中央
mouse.click(pynupt.Button.left, 1) # 点击左键打开浏览器
time.sleep(3) # 等待3秒钟,等待浏览器启动
keyboard.type('www.baidu.com') # 在地址栏中输入www.baidu.com
keyboard.press(pynupt.Key.enter) # 按下回车键
keyboard.release(pynupt.Key.enter) # 释放回车键
time.sleep(3) # 等待3秒钟,等待页面加载完成
mouse.move(500, 200) # 将鼠标移动到搜索框
mouse.click(pynupt.Button.left, 1) # 点击搜索框
keyboard.type(keywords) # 在搜索框中输入关键字
keyboard.press(pynupt.Key.enter) # 按下回车键
keyboard.release(pynupt.Key.enter) # 释放回车键
time.sleep(3) # 等待3秒钟,等待搜索结果加载完成
mouse.move(500, 300) # 将鼠标移动到搜索按钮
mouse.click(pynupt.Button.left, 1) # 点击搜索按钮
if __name__ == '__main__':
input_and_search('pynput')
在这个示例中,我们定义了一个input_and_search函数,用于模拟用户在百度搜索输入框中输入关键字并点击搜索按钮。我们使用了pynupt的Keyboard类和Mouse类来模拟键盘和鼠标操作。最后在主函数中调用input_and_search函数,并传入关键字'pynput'来进行搜索。
总结
总之,pynupt是一个非常有趣的模块,它可以让我们通过编程来控制鼠标和键盘,让我们更加方便地进行各种操作。
Python 有趣的模块之pynupt——通过pynput控制鼠标和键盘的更多相关文章
- python:控制鼠标和键盘
程序: # # _*_ coding:UTF-8 _*_ import win32api import win32con import win32gui from ctypes import * im ...
- Python使用pyautogui控制鼠标键盘
官方文档:https://pyautogui.readthedocs.io/en/latest/# 安装pyautogui模块 在 Windows 上,不需要安装其他模块. 在 OS X 上,运行 s ...
- 使用pynput同时监听鼠标和键盘
pynput概述 pynput是一个基于python的,能够监听和控制鼠标和键盘的第三方库. pynput主要包括两个类,pynput.mouse和pynput.keyboard,顾名思义,前者可以用 ...
- 【Python】【有趣的模块】tqdm | inspect
tqdm """ [tqdm] 显示循环的进度条,再也不用担心程序跑到哪里还要跑多久了 tqdm 可以直接包裹iterable对象 from tqdm import tq ...
- Python的regex模块——更强大的正则表达式引擎
Python自带了正则表达式引擎(内置的re模块),但是不支持一些高级特性,比如下面这几个: 固化分组 Atomic grouping 占有优先量词 Possessive quantifi ...
- python之platform模块
python之platform模块 ^_^第三个模块从天而降喽!! 函数列表 platform.system() 获取操作系统类型,windows.linux等 platform.platform() ...
- python之OS模块详解
python之OS模块详解 ^_^,步入第二个模块世界----->OS 常见函数列表 os.sep:取代操作系统特定的路径分隔符 os.name:指示你正在使用的工作平台.比如对于Windows ...
- python之sys模块详解
python之sys模块详解 sys模块功能多,我们这里介绍一些比较实用的功能,相信你会喜欢的,和我一起走进python的模块吧! sys模块的常见函数列表 sys.argv: 实现从程序外部向程序传 ...
- 学习PYTHON之路, DAY 6 - PYTHON 基础 6 (模块)
一 安装,导入模块 安装: pip3 install 模块名称 导入: import module from module.xx.xx import xx from module.xx.xx impo ...
- linux下python调用c模块
在C调用Python模块时需要初始化Python解释器,导入模块等,但Python调用C模块却比较简单,下面还是以helloWorld.c 和 main.py 做一说明: (1)编写C代码,hel ...
随机推荐
- Hybrid 实验
实验拓扑 实验需求 按图示给各 PC 配置 IP 地址 PC1属于 VLAN 10 : PC2 与 PC5 属于 VLAN 20:PC4属于 VLAN 30 实现全网互通 实验步骤 1.配置链路聚合 ...
- 五年磨一剑——Sealos 云操作系统正式发布!
这是个宏伟的计划 这是一个宏伟的计划,漫长且有趣. 2018 年的某个夜晚,夜深人静,我挥舞键盘,敲下了 Sealos 的第一行代码.当时仓库命名为 "kubeinit",后来觉得 ...
- .NET7 for LoongArch64(国产龙芯)
目前龙芯通过自己的指令集LA64支持了.Net7.0.1版本,一同被支持的有Ruby,Nodejs,Java,Electron,Python等.原文:在此处 龙芯.Net7 sdk下载地址: http ...
- 记一次字符串末尾空白丢失的排查 → MySQL 是会玩的!
开心一刻 今天答应准时回家和老婆一起吃晚饭,但临时有事加了会班,回家晚了点 回到家,本以为老婆会很生气,但老婆却立即从厨房端出了热着的饭菜 老婆:还没吃饭吧,去洗下,来吃饭吧 我洗好,坐下吃饭,内心感 ...
- 暴力密码破解工具——Hydra
Hydra简介 hydra中文意思为九头蛇,它是黑客组织thc开发一款开源暴力密码破解工具,可以在线破解多种密码,支持Windows Linux MAC系统安装使用(Kali Linux自带), 支持 ...
- 2.融合进阶:Stacking与Blending
1 堆叠法Stacking 1.1 堆叠法的基本思想 堆叠法Stacking是近年来模型融合领域最为热门的方法,它不仅是竞赛冠军队最常采用的融合方法之一,也是工业中实际落地人工智能时会考虑的方案之一. ...
- Ubutnu 20.04 安装和使用单机版hadoop 3.2 [转载]
按照此文档操作,可以一次部署成功:Ubutnu 20.04 安装和使用单机版hadoop 3.2 部署之后,提交测试任务报资源问题.原因是yarn还需要配置,如下: $ cat yarn-site.x ...
- 二代水务系统架构设计分享——DDD+个性化
系统要求 C/S架构的单体桌面应用,可以满足客户个性化需求,易于升级和维护.相比于一代Winform,界面要求美观,控件丰富可定制. 解决方案 依托.Net6开发平台,采用模块化思想设计(即分而治之的 ...
- nlp入门(三)基于贝叶斯算法的拼写错误检测器
源码请到:自然语言处理练习: 学习自然语言处理时候写的一些代码 (gitee.com) 数据来源:norvig.com/big.txt 贝叶斯原理可看这里:机器学习算法学习笔记 - 过客匆匆,沉沉浮浮 ...
- [FlareOn3]Challenge1
打开直接f5,发现只有一个可疑函数 进入 base64??? base64解密