pynput概述

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

pynput官方文档

如何使用

安装

pip install pynput

导入

from pynput import mouse, keyboard

定义监听函数

1
2
3
4
5
6
7
8
9
10
11
12
13
# 监听鼠标
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之类的按键会报错。

监听

1
2
3
4
5
6
7
# 非阻塞方式监听鼠标
mouse_listener = mouse.Listener(on_click=on_click)
mouse_listener.start()

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

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