我目前正在开发一个程序来检查是否在C#中的特定USB集线器上检测到USB设备。我知道连接到集线器的集线器和从设备的PID和VID。 我使用ManagementObjectSearcher Query来获取设备:
ManagementObjectSearcher USBSearchQuery = new ManagementObjectSearcher("root\\CIMV2", "SELECT * FROM Win32_PnPEntity WHERE DeviceID LIKE \"%VID_17EF&PID_6019%\"");
ManagementObjectCollection DeviceCollection = USBSearchQuery.Get();
这很好用。 ManagementObjectCollection DeviceCollection包含2个元素。一个HID设备和一个USB设备。当我检查设备管理器时,我看到了元素,并且可以访问属性Parent,但似乎无法通过WMI查询获取对象的父节点或子节点。
我可以通过集线器的子节点或设备的父节点来完成此操作。你们有没有想过如何做到这一点?
答案 0 :(得分:0)
ManagementObjectCollection DeviceCollection = USBSearchQuery .Get();
foreach (ManagementObject mo in DeviceCollection )
{
//get all properties
//ex: mo.Properties["Description"].Value represents the friendly name of the device
//mo.Properties["PNPClass"].Value represents the parent class of the device
}