使用C#中的WMI通过串行端口读取RFID的物理设备对象名称
我正在设置一个C#代码以读取来自不同RFID阅读器的信号。因此,我想获取物理设备ID以识别哪个设备正在发送哪个信号。因此,我试图通过WMI读取设备信息,该类具有13xx以上的类。
代码。
ManagementObjectSearcher objSearcher = new ManagementObjectSearcher("Select * From Win32_PnPEntity");
ManagementObjectCollection objCollection = objSearcher.Get();
foreach (ManagementObject obj in objCollection)
{
string info = "HardwareID : "+obj["HardwareID"];
}
我希望每个RFID阅读器的信息都具有唯一的物理ID。
答案 0 :(得分:1)
HardwareID是string[]
而不是string
,因此要获取,您必须执行以下操作
var objSearcher = new ManagementObjectSearcher("Select * From Win32_PnPEntity");
var objCollection = objSearcher.Get();
foreach (var queryObj in objSearcher.Get())
{
Console.WriteLine("Name {0}" , queryObj["Name"]);
if (queryObj["HardwareID"] == null)
Console.WriteLine("HardwareID: {0}", queryObj["HardwareID"]);
else
{
var arrHardwareID = (String[])(queryObj["HardwareID"]);
foreach (var arrValue in arrHardwareID)
{
Console.Write("HardwareID: {0}\t", arrValue);
}
}
}