如何使用 WMI 获取 RFID 读取器的物理设备 ID



在 C# 中使用 WMI 通过串行端口读取 RFID 的物理设备对象名称

我正在设置一个 C# 代码来读取来自不同 RFID 阅读器的信号。因此,我想获取物理设备 ID 以识别哪个设备正在发送哪个信号。所以我正在尝试通过具有超过 13xx 类的 WMI 读取设备信息。

代码

ManagementObjectSearcher objSearcher = new ManagementObjectSearcher("Select * From Win32_PnPEntity");
ManagementObjectCollection objCollection = objSearcher.Get();
foreach (ManagementObject obj in objCollection)
{
    string info = "HardwareID : "+obj["HardwareID"];
}

我希望每个RFID阅读器的信息都是唯一的物理ID。

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);
         }
    }
}

此外,您始终可以使用任何 NuGet 包来简化您的工作,例如 Kexla 或 ORMi

最新更新