python - python usb键盘拔掉
问题描述
我的最终目标是检测 USB 键盘是否被拔出——它必须在 mac、windows 和 linux 上工作,这就是我选择 python 的原因。(基本上我有一个切换 USB 集线器,比如 kvm - 但只有 USB - 我想做一些事情,比如当你从盒子切换时关闭屏幕;我在交换机上有 mac、windows 和 linux 盒子) .
我看到了 pyusb 并想,好吧 - 我会用它每隔 30 秒左右轮询一次 USB 设备。所以
我从 windows 开始 - 做了以下
pip install pyusb
pip install libusb
copy C:\python39\lib\sitepackages\libusb\_platform_windows\x64\libusb-1.0.dll C:\python39\scripts
然后在 jupyter 中尝试了以下脚本
import usb
for bus in usb.busses():
for device in bus.devices():
print( "Device: " + device.filename )
它只是在第一行以“找不到实体”而死。
知道如何解决这个问题吗?
或者当 USB 键盘(或其他设备)断开连接时如何获取事件?
解决方案
我编辑了您的 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 集线器,则使用此脚本会得到一个额外的条目。
推荐阅读
- sql - 仅检索每个学生的第一行
- ansible - Ansible:在另一个循环中引用的循环变量
- javascript - 箭头函数未定义
- java - 如何忽略 Xpath 中的特定字符?
- angular - Angular Overlay 将不存在的 dom 元素称为覆盖容器
- javascript - Chainlink 外部适配器对 Spotify 进行 API 调用时出现问题
- database - 安装 mongoose 和 Mongodb 时出错
- database - Oracle DB - 连接问题
- go - $ fyne package -os linux ... 结果是:bash: fyne: command not found
- asp.net-mvc - Bootstrap Datetimepicker 英国日期格式发布为美国格式