gpt4 book ai didi

c# - 如何通过 WMI 获取我系统上的所有智能卡读卡器?

转载 作者:太空宇宙 更新时间:2023-11-03 17:56:09 24 4
gpt4 key购买 nike

我想使用 WMI 获取系统上所有 PCSC 智能卡读卡器的设备 ID 和服务。它们都是通过 USB 连接的,因此我查询 WMI 注册表以查找所有 Win32_PnPEntity。但我不知道如何确定哪些设备是“读卡器”。这是我已经拥有的:

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

我不能只根据设备名称进行过滤,阅读器的品牌/型号各不相同,而且没有共同点。在设备管理器中,它们都被分组在“智能卡读卡器”下,因此必须有(另一种)方式。

最佳答案

我在 MSDN 上找到了设备类 GUID| :{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}'");

这似乎给了我想要的:)

关于c# - 如何通过 WMI 获取我系统上的所有智能卡读卡器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10812729/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com