写在前面

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控制鼠标和键盘的更多相关文章

  1. python:控制鼠标和键盘

    程序: # # _*_ coding:UTF-8 _*_ import win32api import win32con import win32gui from ctypes import * im ...

  2. Python使用pyautogui控制鼠标键盘

    官方文档:https://pyautogui.readthedocs.io/en/latest/# 安装pyautogui模块 在 Windows 上,不需要安装其他模块. 在 OS X 上,运行 s ...

  3. 使用pynput同时监听鼠标和键盘

    pynput概述 pynput是一个基于python的,能够监听和控制鼠标和键盘的第三方库. pynput主要包括两个类,pynput.mouse和pynput.keyboard,顾名思义,前者可以用 ...

  4. 【Python】【有趣的模块】tqdm | inspect

    tqdm """ [tqdm] 显示循环的进度条,再也不用担心程序跑到哪里还要跑多久了 tqdm 可以直接包裹iterable对象 from tqdm import tq ...

  5. Python的regex模块——更强大的正则表达式引擎

    Python自带了正则表达式引擎(内置的re模块),但是不支持一些高级特性,比如下面这几个: 固化分组    Atomic grouping 占有优先量词    Possessive quantifi ...

  6. python之platform模块

    python之platform模块 ^_^第三个模块从天而降喽!! 函数列表 platform.system() 获取操作系统类型,windows.linux等 platform.platform() ...

  7. python之OS模块详解

    python之OS模块详解 ^_^,步入第二个模块世界----->OS 常见函数列表 os.sep:取代操作系统特定的路径分隔符 os.name:指示你正在使用的工作平台.比如对于Windows ...

  8. python之sys模块详解

    python之sys模块详解 sys模块功能多,我们这里介绍一些比较实用的功能,相信你会喜欢的,和我一起走进python的模块吧! sys模块的常见函数列表 sys.argv: 实现从程序外部向程序传 ...

  9. 学习PYTHON之路, DAY 6 - PYTHON 基础 6 (模块)

    一 安装,导入模块 安装: pip3 install 模块名称 导入: import module from module.xx.xx import xx from module.xx.xx impo ...

  10. linux下python调用c模块

    在C调用Python模块时需要初始化Python解释器,导入模块等,但Python调用C模块却比较简单,下面还是以helloWorld.c 和 main.py 做一说明:   (1)编写C代码,hel ...

随机推荐

  1. cmd+ssh配置远程服务器Anaconda3_2023+pytorch

    一.上传Anaconda3到远程服务器 注意:如果要将这个东西安装在anaconda3文件夹里的话,当前这个目录里不能有这个文件夹.(安的时候会自动创建) 二.安装Anaconda3 1. win+r ...

  2. pyhton - parallel - programming - cookbook(THREAD)

    基于线程的并行 通常,一个应用有一个进程,分成多个独立的线程,并行运行.互相配合,执行不同类型的任务. 线程是独立的处理流程,可以和系统的其他线程并行或并发地执行.多线程可以共享数据和资源,利用所谓的 ...

  3. 曲线艺术编程 coding curves 第十二章 玑镂(扭索)纹

    第十二章 玑镂(扭索)纹 原作:Keith Peters https://www.bit-101.com/blog/2022/11/coding-curves/ 译者:池中物王二狗(sheldon) ...

  4. java后端接入微信小程序登录功能

    前言 此文章是Java后端接入微信登录功能,由于项目需要,舍弃了解密用户信息的session_key,只保留openid用于检索用户信息 后端框架:spring boot 小程序框架:uniapp 流 ...

  5. CF1034D Intervals of Intervals

    简要题意 给定 \(n\) 个区间组成的序列,定义它的一个连续段的价值为这个段内所有区间的并覆盖的长度.求价值前 \(k\) 大的段的价值和. 数据范围:\(1\le n\le 3\times 10^ ...

  6. W1R3S-1项目实战

    前言 您受聘在W1R3S.inc单个服务器上进行渗透测试,并报告所有发现.他们要求您获得root访问权限并找到标志(位于/root目录中). 难以获得低特权外壳:初级/中级 获得特权升级的难度:初级/ ...

  7. python学习--采集弹幕信息

    # -*- coding: utf-8 -*-"""Created on Mon Nov 4 12:00:12 2019 @author: DELL"" ...

  8. python安装后pip用不了 cmd命令窗口提示:Did not provide a command

    遇到的问题: 解决方法: 首先,使用where pip找到我的pip的安装目录 其次,配置环境变量 环境变量已经配置,但是仍是使用的时候直接输入pip提示"Did not provide a ...

  9. 好用工具:Apipost配置环境变量

    配置环境 点击小眼睛可查看环境配置 配置环境url api请求

  10. 这样拆分和压缩css代码

    在[拆分]和[压缩]css代码之前,首先要配置 loader 处理不同的 css 资源,因为 webpack 没有默认可处理 css 资源的规则,具体可参考这一篇 webpack处理css/less资 ...