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 listenerreturn 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的介绍。