简体   繁体   English

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

[英]How to get Physical device IDs of RFID readers using WMI?

Reading RFID's Physical Device Object Name through Serial Port using WMI in C# 在C#中使用WMI通过串行端口读取RFID的物理设备对象名称

I'm setting up a C# code to read signals from different RFID readers. 我正在设置一个C#代码以读取来自不同RFID阅读器的信号。 So, I want to get Physical Device ID to recognize which device is sending which signal. 因此,我想获取物理设备ID以识别哪个设备正在发送哪个信号。 So I'm trying to read device information through WMI which has more than 13xx classes. 因此,我试图通过WMI读取设备信息,该类具有13xx以上的类。

code . 代码

ManagementObjectSearcher objSearcher = new ManagementObjectSearcher("Select * From Win32_PnPEntity");
ManagementObjectCollection objCollection = objSearcher.Get();

foreach (ManagementObject obj in objCollection)
{
    string info = "HardwareID : "+obj["HardwareID"];
}

I expected the information of each RFID reader unique physical ID. 我希望每个RFID阅读器的信息都具有唯一的物理ID。

HardwareID is a string[] and not a string so to obtain is you have to do something like this 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);
         }
    }
}

Also, you can always use any NuGet package to ease your work like Kexla or ORMi 此外,您始终可以使用任何NuGet包来简化您的工作,例如KexlaORMi

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM