使用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 @ 2021-07-09 20:35  狛枫  阅读(1453)  评论(0编辑  收藏  举报