我正在尝试从C#中的设备管理器获取系统设备ID。我找到了一些代码来查找USB设备ID,但我不知道如何将代码从USB设备更改为PCI设备。
这是我找到的代码:
ManagementObjectSearcher mos = new ManagementObjectSearcher("SELECT * FROM Win32_SystemDevices WHERE InterfaceType='USB'");
foreach (ManagementObject mo in mos.Get())
{
ManagementObject query = new ManagementObject("Win32_PhysicalMedia.Tag='" + mo["DeviceID"] + "'");
Console.WriteLine(query["SerialNumber"]);
}
答案 0 :(得分:4)
根据MSDN, Win32_PhysicalMedia 代表任何类型的文档或存储介质。 如果要从PCI设备获取DeviceID(如在控制面板中的设备管理器中),则需要 Win32_PnPEntity 类,该类表示即插即用设备的属性。因此,请尝试使用此代码:
ManagementObjectSearcher searcher =
new ManagementObjectSearcher("root\\CIMV2",
"SELECT * FROM Win32_PnPEntity");
foreach (ManagementObject queryObj in searcher.Get())
{
Console.WriteLine("DeviceID: {0}", queryObj["DeviceID"]);
Console.WriteLine("Description: {0}", queryObj["Description"]);
}
运行此代码可为我提供有关我的PCI设备的大量信息