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

pynput概述

pynput是一个基于python的,能够监听和控制鼠标和键盘的第三方库。
pynput主要包括两个类,pynput.mousepynput.keyboard,顾名思义,前者可以用来控制和监听鼠标(或者触控板?),后者可以用来控制和监听键盘。

pynput官方文档

如何使用

安装

pip install pynput

导入

from pynput import mouse, keyboard

定义监听函数

# 监听鼠标
def on_click(x, y, button, pressed):
    if button == mouse.Button.middle and pressed:
        print("middle pressed")
    elif button == mouse.Button.middle and (not pressed):
        print("middle not pressed")
# 监听键盘
def on_press(key):
    try:
        if key.char in ['1','2','3']:
        	print(key.char)
    except AttributeError:
		print('special key {0} pressed'.format(key))

定义监听键盘函数时,一定要使用try except捕获AttributeError异常,否则按到诸如ctrl或者shift之类的按键会报错。

监听

# 非阻塞方式监听鼠标
mouse_listener = mouse.Listener(on_click=on_click)
mouse_listener.start()

# 阻塞方式监听键盘
with keyboard.Listener(on_press=on_press) as keyboardListener:
    keyboardListener.join()

一个要用非阻塞方式,另一个要用阻塞方式才行,如果只监听其中一个,那么需要监听的那个用阻塞方式。

posted @   狛枫  阅读(1544)  评论(0编辑  收藏  举报
编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示