[Python进阶] 监听键鼠:Pynput

6.8 监听键鼠:Pynput

6.8.1 监听鼠标

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都会停止事件的监听。

6.8.2 监听键盘

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。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

0思必得0

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值