我想使用 WMI 获取系统上所有 PCSC 智能卡读卡器的 DeviceID 和服务。它们都是通过 USB 连接的,因此我查询 WMI 注册表以获取所有信息Win32_PnPEntity
s。但我不知道如何确定哪些设备是“读卡器”。这是我已经拥有的:
ManagementObjectSearcher mos =
new ManagementObjectSearcher(@"\root\cimv2", @"Select * From Win32_PnPEntity");
ManagementObjectCollection mob = mos.Get();
foreach (ManagementObject mo in mob)
{
Console.WriteLine("DeviceID: " + mo["DeviceID"].ToString());
Console.WriteLine("Service: " + mo["Service"].ToString());
}
我不能只根据设备名称进行过滤,阅读器有不同的品牌/型号,并且没有共同点。在设备管理器中,它们都分组在“智能卡读卡器”下,因此必须有一种(另一种)方法。
我在以下位置找到了设备类 GUIDMSDN:
{50dd5230-ba8a-11d1-bf5d-0000f805f530}
Smart Card Readers
Class = SmartCardReader
ClassGuid = {50dd5230-ba8a-11d1-bf5d-0000f805f530}
This class includes smart card readers.
所以最后我想出了这个:
ManagementObjectSearcher mos = new ManagementObjectSearcher(@"\root\cimv2",
@"SELECT * FROM Win32_PnPEntity WHERE ClassGuid = '{50DD5230-BA8A-11D1-BF5D-0000F805F530}'");
这似乎给了我我想要的:)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)