我试图获得设备的PID(产品ID)和VID(供应商ID)
我已经找到了这篇文章,问同样的问题:如何获得所有USB设备的VID和PID连接到我的系统在。net?
然而,我在ManagementClass构造函数中得到一个异常,说它找不到Win32_USBDevice
我发现了一个传递"Win32_DiskDrive"作为一个参数,但然后它找不到任何东西,并抛出NullReferenceException在作用域的末尾(似乎它与IDiposable有关,因为添加"using"To the like make it throw there)
所以我的问题是,我怎么能得到PID和VID我的设备使用c#和。net 6?
您尝试过WMI查询吗?获取设备id
应该很简单public class CustomWMIQuery
{
public static void Main()
{
try
{
ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT * FROM Win32_DiskDrive WHERE InterfaceType='USB'");
foreach (ManagementObject queryObj in searcher.Get())
{
Console.WriteLine("Name: {0}", queryObj["Name"]);
Console.WriteLine("Caption: {0}", queryObj["Caption"]);
Console.WriteLine("Description: {0}", queryObj["Description"]);
Console.WriteLine("DeviceID: {0}", queryObj["DeviceID"]);
Console.WriteLine("PNPDeviceID: {0}", queryObj["PNPDeviceID"]);
}
}
catch (ManagementException e)
{
MessageBox.Show("error: " + e.Message);
}
}
}
设备id看起来像这样
USBVID_0911&PID_1240&MI_016&27AAD51C&0&0000
然后你可以从VID_中获取信息&分隔符作为供应商Id然后可以从PID_中获取信息&分隔符作为产品Id