我有一个游戏键盘(Logitech G15),它使用自己的软件来实现附加功能。现在我正在编写一个启动批处理脚本,如果键盘已连接,它会启动该软件。它当然可以自动启动,但我禁用了它,因为我不需要在不使用键盘时启动它。
我知道如何检查输出是否devcon hwids *
包含一些精确的文本。这样我就可以找到设备。但我的问题是,输出中是否有任何信息在重新启动和使用不同键盘时保持不变。
我将 DevCon 的输出保存到两个文件中,一个连接键盘,一个不连接键盘。然后我将它们与进行了fc
比较。这是其中一个区别:
HID\VID_046D&PID_C221&MI_00\8&29AF1682&0&0000
Name: HID Keyboard Device
Hardware ID's:
HID\VID_046D&PID_C221&REV_0170&MI_00
HID\VID_046D&PID_C221&MI_00
HID_DEVICE_SYSTEM_KEYBOARD
HID_DEVICE_UP:0001_U:0006
HID_DEVICE
还有大约十个不同之处,其中设备是“HID 兼容设备”、“USB 输入设备”以及一些不相关的设备,例如集成 USB 集线器。
现在我想问的是,是否有任何信息可以识别另一个 Logitech G15,或者至少总是可以识别我的?
答案1
即插即用很难,是吗?我很同情你。
这些信息是存在的,并且就在您面前。标准硬件 ID 包含供应商 ID 和产品 ID。对于您来说:
危险品\视频_046D&PID_C221&REV_0170&MI_00
供应商 ID046D
是 Logitech Incorporated,产品 IDC221
是 G11/G15 键盘。(为了比较,产品 IDC223
是带 USB 集线器的 G11/G15 键盘。)供应商 ID 只是 USB-IF 分配的供应商 ID。产品 ID 当然由 Logitech 决定。
理论上你可以限制你的设备控制台搜索:
devcon hwids“VID_046D&PID_C221“
进一步阅读
- USB 设备的标识符. Windows 开发中心。MSDN。微软公司。
- DevCon HWID. Windows 开发中心。MSDN。微软公司。
- USB 实施者论坛
- 斯蒂芬·J·高迪。USB ID 列表.Linux USB 项目。