python中pynput库的具体使用

 更新时间:2024年09月23日 09:51:02   作者:pumpkin84514  
pynput是Python库,支持跨平台控制和监听键盘、鼠标输入,包含keyboard和mouse模块,用于处理键盘事件和鼠标事件,本文就来详细的介绍一下,感兴趣的可以了解一下

pynput 是一个 Python 库,用于控制和监听键盘与鼠标输入。它在 Windows、macOS 和 Linux 上都可以工作,为用户提供了一个跨平台的输入事件处理方式。pynput 包含两个主要模块:keyboard 和 mouse,分别用于处理键盘和鼠标事件。

主要API介绍:

键盘模块(keyboard)

  • KeyboardListener:监听键盘事件。
  • Controller:控制键盘输入。

鼠标模块(mouse)

  • MouseListener:监听鼠标事件。
  • Controller:控制鼠标移动和点击。

常用API函数:

键盘API

  • keyboard.Controller.press(key): 按下键。
  • keyboard.Controller.release(key): 释放键。
  • keyboard.Controller.type(string): 输入字符串。
  • keyboard.Listener(on_press=None, on_release=None): 监听键盘按键事件。

鼠标API

  • mouse.Controller.position: 获取当前鼠标位置。
  • mouse.Controller.move(x, y): 移动鼠标。
  • mouse.Controller.press(button): 按下鼠标按钮。
  • mouse.Controller.release(button): 释放鼠标按钮。
  • mouse.Controller.click(button, n): 单击鼠标按钮n次。
  • mouse.Listener(on_click=None, on_scroll=None, on_move=None): 监听鼠标事件。

具体示例:

键盘示例

from pynput.keyboard import Key, Listener, Controller

# 创建键盘控制器
keyboard = Controller()

def on_press(key):
    try:
        print('Alphanumeric key {0} pressed'.format(key.char))
    except AttributeError:
        print('Special key {0} pressed'.format(key))

def on_release(key):
    print('{0} released'.format(key))
    if key == Key.esc:
        # Stop listener
        return False

# Collect events until released
with Listener(on_press=on_press, on_release=on_release) as listener:
    listener.join()

# 模拟键盘输入
keyboard.type("Hello World!")
keyboard.press(Key.enter)
keyboard.release(Key.enter)

鼠标示例

from pynput.mouse import Button, Controller, Listener

# 创建鼠标控制器
mouse = Controller()

def on_move(x, y):
    print('Pointer moved to {0}'.format((x, y)))

def on_click(x, y, button, pressed):
    if pressed:
        print('Mouse clicked at ({0}, {1}) with {2}'.format(x, y, button))

def on_scroll(x, y, dx, dy):
    print('Mouse scrolled at ({0}, {1})({2}, {3})'.format(x, y, dx, dy))

# Collect events until released
with Listener(on_move=on_move, on_click=on_click, on_scroll=on_scroll) as listener:
    listener.join()

# 模拟鼠标移动和点击
mouse.position = (100, 200)
mouse.click(Button.left, 1)

注意事项:

  • 在使用 pynput 监听键盘和鼠标事件时,程序会阻塞直到监听结束。
  • pynput 可能需要管理员权限才能运行,特别是在 Windows 上。
  • pynput 的事件监听器可以设置为非阻塞模式,但默认是阻塞的。

以上就是 pynput 的基础使用方法和一些常见API的介绍。更多相关python pynput库内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 使用Python绘制实时的动态折线图

    使用Python绘制实时的动态折线图

    这篇文章主要为大家详细介绍了如何使用Python绘制实时的动态折线图,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2024-11-11
  • Python 实现图像逐像素点取邻域数据

    Python 实现图像逐像素点取邻域数据

    这篇文章主要介绍了Python 实现图像逐像素点取邻域数据,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-03-03
  • 如何用Python生成二维码、解析二维码

    如何用Python生成二维码、解析二维码

    这篇文章主要介绍了如何用Python生成二维码、解析二维码,帮助大家更好的理解和学习使用python,感兴趣的朋友可以了解下
    2021-03-03
  • Python编程中字符串和列表的基本知识讲解

    Python编程中字符串和列表的基本知识讲解

    这篇文章主要介绍了Python编程中字符串和列表的基本知识讲解,是Python入门学习中的基础知识,需要的朋友可以参考下
    2015-10-10
  • python空值判断方式(if xxx和if xxx is None的区别及说明)

    python空值判断方式(if xxx和if xxx is None的区别及说明

    这篇文章主要介绍了python空值判断方式(if xxx和if xxx is None的区别及说明),具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-11-11
  • Python实现B站UP主小助手详解开发流程

    Python实现B站UP主小助手详解开发流程

    功能是不是还挺丰富的,从写第一行代码到完成也就花了两天不到的时间,这也证明了使用python开发的高效率,下面来说说这些功能开发中我遇到了哪些问题,我又是如何解决的
    2022-02-02
  • python显示生日是星期几的方法

    python显示生日是星期几的方法

    这篇文章主要介绍了python显示生日是星期几的方法,涉及Python使用date模块操作日期的技巧,需要的朋友可以参考下
    2015-05-05
  • python mock测试的示例

    python mock测试的示例

    这篇文章主要介绍了python mock测试的示例,帮助大家利用python进行模拟接口测试,感兴趣的朋友可以了解下
    2020-10-10
  • pytorch中关于distributedsampler函数的使用

    pytorch中关于distributedsampler函数的使用

    这篇文章主要介绍了pytorch中关于distributedsampler函数的使用,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-02-02
  • Python离线安装openpyxl模块的步骤

    Python离线安装openpyxl模块的步骤

    这篇文章主要介绍了Python离线安装openpyxl模块的步骤,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-03-03

最新评论