首页 > 编程语言 >Python 有趣的模块之pynupt——通过pynput控制鼠标和键盘

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

时间:2023-08-17 16:37:30浏览次数:37  
标签:鼠标 示例 Python press keyboard pynupt release 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,press,keyboard,pynupt,release,pynput
From: https://blog.51cto.com/u_16022798/7123711

相关文章

  • python3 安装clickhouse_sqlalchemy(greenlet) 失败
    环境信息:centos7操作系统,python3.8执行pip3installclickhouse_sqlalchemy或者pip3installgreenlet报以下报错:Command"/opt/python3.6.10-customized/bin/python3.6-u-c"importsetuptools,tokenize;file='/tmp/pip-install-wbyi43ip/greenlet/setup.py';f=g......
  • python中%d、%i、%.nf、%s占位符
     001、%d:整数%i:十进制整数%.nf:浮点数%s:字符串 举例:>>>print("aaaa%dbbbb"%10)##整数aaaa10bbbb>>>print("aaaa%ibbbb"%10)##十进制整数aaaa10bbbb>>>print("aaaa%.2fbbbb"%10)##浮点数......
  • python
    importrandomdefgenerate_random_number(start,end):returnrandom.randint(start,end)示例输入start=1end=100调用函数并打印结果random_number=generate_random_number(start,end)print("生成的随机整数为:",random_number)......
  • python中SeqIO模块处理fasta文件
     001、分别输出染色体ID、序列和序列的长度[root@PC1test02]#lsa.fatest.py[root@PC1test02]#cata.fa##测试数据>seq1AGAAGGGG>seq2AAACCTTTT>seq3AAATTTCCGG[root@PC1test02]#cattest.py##程序#!/usr/bin/envpython#-*-coding:......
  • Python 有趣的模块之pynupt——通过pynput控制鼠标和键盘
    写在前面Python中有许多有趣和强大的模块,其中一个非常有趣的模块就是pynupt。pynupt是基于pynput模块的一个封装,用于控制鼠标和键盘。它可以实现自动化操作和游戏外挂等功能。 本文将详细介绍pynupt模块的使用方法和常见的功能。1.安装pynput模块在开始使用pynupt之前,我们......
  • Python小项目:利用 U-net 完成细胞图像分割
    完整数据集下载:下载链接1前言在当今数字化时代,图像处理和分析已经成为了科学研究和技术应用领域的关键部分。在生物医学领域,图像分析对于诊断、治疗和疾病研究具有重要意义。本项目将带您深入了解U-net细胞分割技术,这是一种在生物医学图像领域广泛应用的语义分割方法,旨在精......
  • 3分钟学会Python 常用配置文件处理
    一:配置文件1.什么是配置文件配置文件是为程序配置参数和初始设置的文件。一般为文本文件,以ini,conf,cnf,cfg,yaml等作为后缀名。例如mysql的配置文件my.cnf内容如下:[mysqld]#Onlyallowconnectionsfromlocalhostbind-address=0.0.0.0mysqlx-bind-address=127.0.0.......
  • Python Djang全栈开发中问题记录
    1、引用bootstrap5现成前端框架时,iframe嵌入访问不了网页,报错failedtoloadresponsedata:Noresourcewithgivenidentifierfound,控制台报错:Refusedtodisplay'http://127.0.0.1:8000/'inaframebecauseitset'X-Frame-Options'to'deny'.,直接访问地址是正常展示......
  • 某公司笔试题 - 删除字符串中出现次数最少的字符(附python代码)
    #实现删除字符串中出现次数最少的字符,若出现次数最少的字符有多个,则把出现次数最少的字符都删除。输入删除这些单词后的字符串,字符串中其它字符保持原来的顺序。#数据范围:输入的字符串长度满足1<=n<=20,保证输入的字符串中仅出现小写字母str1=input().lower()dic={}if1<......
  • python 初始化类对象时没有执行类的构造法方法
    这个地方错了  修改: ......