• [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()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23

    鼠标移动到:(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()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22

    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。

  • 相关阅读:
    bootstrap-table固定右侧列+表头和内容对齐
    C语言百日刷题第八天
    FFmpeg 给视频增加黑边
    亚马逊六页纸沟通法,拒绝PPT
    Python入门之设置环境变量与缩进
    UE5 虚幻引擎,打开空间蓝图,出现未识别的选项卡
    WebRTC janus安装编译教程
    华为机试题:HJ3 明明的随机数
    strlen函数详解
    【软件设计师21天-考点整理】4)计算机系统构成及硬件基础知识
  • 原文地址:https://blog.csdn.net/crleep/article/details/133898382