原来很简单 2023-02-02 10:06 采纳率: 0%
浏览 33

pynput无法监听键盘鼠标事件

在 ubuntu-22.04.1 系统下,为什么 pynput 库无法监听键盘鼠标事件?

import time
from pynput import mouse
from pynput import keyboard


def on_press(key):
    print('press', key)


def on_release(key):
    print('release', key)


def on_click(x, y, button, pressed):
    print('click', x, y, button, pressed)


if __name__ == '__main__':
    print('30秒测试时间.')
    kb_listener = keyboard.Listener(on_press=on_press, on_release=on_release)
    kb_listener.start()
    mouse_listener = mouse.Listener(on_click=on_click)
    mouse_listener.start()
    print('===========下面的控制器可以监听到===========')
    kb = keyboard.Controller()
    kb.press(keyboard.Key.up)
    kb.release(keyboard.Key.up)
    print('===========手动按下鼠标、键盘监听不到===========')
    time.sleep(30)
  • 写回答

2条回答 默认 最新

  • CodeBytes 2023-02-02 10:18
    关注

    “该回答引用ChatGPT”

    请参考,请测试代码的可行性:
    应该先将监听器启动,再执行手动按键。在30秒测试时间结束后,应该关闭监听器

    import time
    from pynput import mouse
    from pynput import keyboard
    
    
    def on_press(key):
        print('press', key)
    
    
    def on_release(key):
        print('release', key)
    
    
    def on_click(x, y, button, pressed):
        print('click', x, y, button, pressed)
    
    
    if __name__ == '__main__':
        print('30秒测试时间.')
        kb_listener = keyboard.Listener(on_press=on_press, on_release=on_release)
        mouse_listener = mouse.Listener(on_click=on_click)
        kb_listener.start()
        mouse_listener.start()
        print('===========下面的控制器可以监听到===========')
        kb = keyboard.Controller()
        kb.press(keyboard.Key.up)
        kb.release(keyboard.Key.up)
        print('===========手动按下鼠标、键盘监听到的请检查上面的输出===========')
        time.sleep(30)
        kb_listener.stop()
        mouse_listener.stop()
    
    
    
    评论

报告相同问题?

问题事件

  • 创建了问题 2月2日

悬赏问题

  • ¥20 易康econgnition精度验证
  • ¥15 msix packaging tool打包问题
  • ¥28 微信小程序开发页面布局没问题,真机调试的时候页面布局就乱了
  • ¥15 python的qt5界面
  • ¥15 无线电能传输系统MATLAB仿真问题
  • ¥50 如何用脚本实现输入法的热键设置
  • ¥20 我想使用一些网络协议或者部分协议也行,主要想实现类似于traceroute的一定步长内的路由拓扑功能
  • ¥30 深度学习,前后端连接
  • ¥15 孟德尔随机化结果不一致
  • ¥15 apm2.8飞控罗盘bad health,加速度计校准失败