首页 > 解决方案 > python usb键盘拔掉

问题描述

我的最终目标是检测 USB 键盘是否被拔出——它必须在 mac、windows 和 linux 上工作,这就是我选择 python 的原因。(基本上我有一个切换 USB 集线器,比如 kvm - 但只有 USB - 我想做一些事情,比如当你从盒子切换时关闭屏幕;我在交换机上有 mac、windows 和 linux 盒子) .

我看到了 pyusb 并想,好吧 - 我会用它每隔 30 秒左右轮询一次 USB 设备。所以

我从 windows 开始 - 做了以下

然后在 jupyter 中尝试了以下脚本

import usb
for bus in usb.busses():
    for device in bus.devices():
            print( "Device: " + device.filename )

它只是在第一行以“找不到实体”而死。
知道如何解决这个问题吗?
或者当 USB 键盘(或其他设备)断开连接时如何获取事件?

标签: pythonpyusb

解决方案


我编辑了您的 Python 片段以提供更多信息(在 Mac OS 上测试):

import usb
for bus in usb.busses():
    print(f"bus: {bus.location}")
    print(f"Device count: {len(bus.devices)}")
    for device in bus.devices:
            print(f"Device: {device.__dict__}")
    print()

如果我将键盘插入 USB 集线器,则使用此脚本会得到一个额外的条目。


推荐阅读