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的介绍。更多相关python pynput库内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!
发表评论