python——pynput
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的介绍。
原文地址:https://blog.csdn.net/pumpkin84514/article/details/140626027
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!