from pynput import mouse
def on_move(x, y):
print(f'鼠标移动到:{x, y}')
def on_click(x, y, button, pressed):
if pressed:
print(f'按下了鼠标按键,位置:{x, y},按键为:{button}')
else:
print(f'松开了鼠标按键,位置:{x, y},按键为:{button}')
def on_scroll(x, y, dx, dy):
print(f'滚动了鼠标滚轮,位置:{x, y},横向和纵向滚动量为:{dx, dy}')
with mouse.Listener(
on_move=on_move,
on_click=on_click,
on_scroll=on_scroll) as listener:
listener.join()
鼠标移动到:(1977, 438)
鼠标移动到:(1977, 436)
鼠标移动到:(1977, 435)
鼠标移动到:(1977, 435)
按下了鼠标按键,位置:(1977, 435),按键为:Button.left
松开了鼠标按键,位置:(1977, 435),按键为:Button.left
滚动了鼠标滚轮,位置:(1977, 435),横向和纵向滚动量为:(0, -1)
滚动了鼠标滚轮,位置:(1977, 435),横向和纵向滚动量为:(0, 1)
鼠标事件监听器是一个线程,所有的回调函数都会在独立的线程中运行。调用pynput.mouse.Listener.stop,可以发起StopException异常,或者回调函数中返回False都会停止事件的监听。
from pynput import keyboard
from pynput.keyboard import Key
def on_press(key):
try:
print(f'按下了按键:{key}')
except AttributeError:
print(f'不支持的按键:{key}')
def on_release(key):
print(f'释放了按键:{key}')
if key == Key.esc:
# 停止监听
return False
with keyboard.Listener(
on_press=on_press,
on_release=on_release) as listener:
listener.join()
f按下了按键:‘f’
释放了按键:‘f’
f按下了按键:‘f’
释放了按键:‘f’
按下了按键:Key.esc
释放了按键:Key.esc进程已结束,退出代码0
键盘事件监听器是一个线程,所有的回调函数都会在独立的线程中运行。
调用pynput.keyboard.Listener.stop,发起StopException异常,或者回调函数中返回False都会停止事件的监听。
传递给回调函数的key参数是一个pynput.keyboard.Key类的实例。当特殊按键和普通按键一起按下时,数字字母按键的值会被放置在pynput.keyboard.KeyCode类的实例中,对于不知道的按键会返回None。