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

2023-12-06

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

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(使用前将#替换为@)

如何通过 WMI 获取系统上的所有智能卡读卡器? 的相关文章

  • 从父类调用子类方法

    a doStuff 方法是否可以在不编辑 A 类的情况下打印 B did stuff 如果是这样 我该怎么做 class Program static void Main string args A a new A B b new B a
  • WPF 中的调度程序和异步等待

    我正在尝试学习 WPF C 中的异步编程 但我陷入了异步编程和使用调度程序的困境 它们是不同的还是在相同的场景中使用 我愿意简短地回答这个问题 以免含糊不清 因为我知道我混淆了 WPF 中的概念和函数 但还不足以在功能上正确使用它 我在这里
  • 为什么#pragma optimize("", off)

    我正在审查一个 C MFC 项目 在某些文件的开头有这样一行 pragma optimize off 我知道这会关闭所有以下功能的优化 但这样做的动机通常是什么 我专门使用它来在一组特定代码中获得更好的调试信息 并在优化的情况下编译应用程序
  • 在.rdlc报告的底部设置一个文本框

    我在 rdlc 报告中使用 tablix 有一个文本框 其中包含文本 签名 我想将此文本框放置在报告最后一页的底部 就在页脚之前 我已经用谷歌搜索了这个解决方案 但没有找到满意的结果 我的环境是VS2010 framework 4 0 有什
  • 如果使用 SingleOrDefault() 并在数字列表中搜索不在列表中的数字,如何返回 null?

    使用查询正数列表时SingleOrDefault 当在列表中找不到数字时 如何返回 null 或像 1 这样的自定义值 而不是类型的默认值 在本例中为 0 你可以使用 var first theIntegers Cast
  • Cython 和类的构造函数

    我对 Cython 使用默认构造函数有疑问 我的 C 类 Node 如下 Node h class Node public Node std cerr lt lt calling no arg constructor lt lt std e
  • Qt moc 在头文件中实现?

    是否可以告诉 Qt MOC 我想声明该类并在单个文件中实现它 而不是将它们拆分为 h 和 cpp 文件 如果要在 cpp 文件中声明并实现 QObject 子类 则必须手动包含 moc 文件 例如 文件main cpp struct Sub
  • 指针减法混乱

    当我们从另一个指针中减去一个指针时 差值不等于它们相距多少字节 而是等于它们相距多少个整数 如果指向整数 为什么这样 这个想法是你指向内存块 06 07 08 09 10 11 mem 18 24 17 53 7 14 data 如果你有i
  • 在 ASP.NET Core 3.1 中使用包含“System.Web.HttpContext”的旧项目

    我们有一些用 Net Framework编写的遗留项目 应该由由ASP NET Core3 1编写的API项目使用 问题是这些遗留项目正在使用 System Web HttpContext 您知道它不再存在于 net core 中 现在我们
  • 在数据库中搜索时忽略空文本框

    此代码能够搜索数据并将其加载到DataGridView基于搜索表单文本框中提供的值 如果我将任何文本框留空 则不会有搜索结果 因为 SQL 查询是用 AND 组合的 如何在搜索 从 SQL 查询或 C 代码 时忽略空文本框 private
  • Discord.net 无法在 Linux 上运行

    我正在尝试让在 Linux VPS 上运行的 Discord net 中编码的不和谐机器人 我通过单声道运行 但我不断收到此错误 Unhandled Exception System Exception Connection lost at
  • 如何在 VBA 中声明接受 XlfOper (LPXLOPER) 类型参数的函数?

    我在之前的回答里发现了问题 https stackoverflow com q 19325258 159684一种无需注册即可调用 C xll 中定义的函数的方法 我之前使用 XLW 提供的注册基础结构 并且使用 XlfOper 类型在 V
  • WCF:将随机数添加到 UsernameToken

    我正在尝试连接到用 Java 编写的 Web 服务 但有些东西我无法弄清楚 使用 WCF 和 customBinding 几乎一切似乎都很好 除了 SOAP 消息的一部分 因为它缺少 Nonce 和 Created 部分节点 显然我错过了一
  • 有没有办法禁用 .NET 标签的“双击复制”功能?

    这真的很烦人 我使用标签作为列表项用户控件的一部分 用户可以单击它来选择列表项 然后双击它来重命名它 但是 如果剪贴板中有名称 双击标签会将其替换为标签文本 我还检查了应用程序中的其他标签 双击它们也会将其复制到剪贴板 我没有在这个程序中编
  • 32 位到 64 位内联汇编移植

    我有一段 C 代码 在 GNU Linux 环境下用 g 编译 它加载一个函数指针 它如何执行并不重要 使用一些内联汇编将一些参数推送到堆栈上 然后调用该函数 代码如下 unsigned long stack 1 23 33 43 save
  • 为什么我收到“找不到编译动态表达式所需的一种或多种类型。”?

    我有一个已更新的项目 NET 3 5 MVC v2 到 NET 4 0 MVC v3 当我尝试使用或设置时编译出现错误 ViewBag Title财产 找不到编译动态表达式所需的一种或多种类型 您是否缺少对 Microsoft CSharp
  • 如何使用 std::string 将所有出现的一个字符替换为两个字符?

    有没有一种简单的方法来替换所有出现的 in a std string with 转义 a 中的所有斜杠std string 完成此操作的最简单方法可能是boost字符串算法库 http www boost org doc libs 1 46
  • ASP.NET MVC 6 (ASP.NET 5) 中的 Application_PreSendRequestHeaders 和 Application_BeginRequest

    如何在 ASP NET 5 MVC6 中使用这些方法 在 MVC5 中 我在 Global asax 中使用了它 现在呢 也许是入门班 protected void Application PreSendRequestHeaders obj
  • C 中的异或运算符

    在进行按位操作时 我在确定何时使用 XOR 运算符时遇到一些困难 按位与和或非常简单 当您想要屏蔽位时 请使用按位 AND 常见用例是 IP 寻址和子网掩码 当您想要打开位时 请使用包含或 然而 XOR 总是让我明白 我觉得如果在面试中被问
  • 限制C#中的并行线程数

    我正在编写一个 C 程序来生成并通过 FTP 上传 50 万个文件 我想并行处理4个文件 因为机器有4个核心 文件生成需要更长的时间 是否可以将以下 Powershell 示例转换为 C 或者是否有更好的框架 例如 C 中的 Actor 框

随机推荐

  • 使用 Youtube Data API 编辑品牌帐户播放列表

    我有一个 Gmail 帐户 无 google plus 其中包含许多品牌帐户 每个品牌帐户都有自己的 YouTube 频道 发布不同的视频内容 我编写了一个简单的 Google Apps 脚本 用于将视频插入品牌帐户播放列表之一 但这不起作
  • 空手道:多部分文件:读取有效,但传递内容值失败

    我有一个带有多部分请求的端点 该请求将两个文件作为请求参数的一部分 我尝试使用下面的代码片段进行读取并且它有效 但我的用例是从文件中获取内容并将其传递给 value 参数 我可以将内容作为文件传递吗 如果我尝试从目录读取文件 工作代码是 工
  • TeamSpeak:查询已连接客户端数量

    我目前正在使用 TeamSpeak 的 ServerQuery 功能通过 PHP 在我的网站上显示所有频道和连接的用户 现在它看起来像这样 对粗略的用户名 频道标题表示歉意 它的作用是显示频道和用户名 但是 我不希望它这样做 我不想显示已连
  • 在 Windows 上安装 PyGraphViz,Python 2.7 graphviz-2.36

    我已经提到过link 但仍然面临问题 我在 Windows 7 上成功安装了 graphviz 现在我想安装 pygraphviz 我下载了 pygraphviz zip 文件并解压缩 我修改了 setup py 并添加了以下文本 Wind
  • 如何在Python中找到两个日期时间对象之间的时间差?

    如何判断两个时间之间的时差 以分钟为单位 datetime物体 gt gt gt import datetime gt gt gt first time datetime datetime now gt gt gt later time d
  • MSI 安装程序扩展如何找到另一个应用程序的安装目录?

    我有一个主要应用程序TheApp它支持插件 应用程序 A 默认安装在 ProgramFiles TheApp 但黄金所有者希望用户可以自定义它 因此它的位置可能会根据安装时用户的输入而变化 插件通过将其复制到子目录来安装Packages安装
  • 如何编写采用“u32”或“&u32”的任何迭代器的通用函数?

    我正在尝试编写一个处理整数序列的函数 fn process one n u32 fn process
  • 用于验证全名的 Java 正则表达式仅允许空格和字母

    我希望正则表达式仅验证字母和空格 基本上这是为了验证全名 前任 史蒂夫 柯林斯先生或史蒂夫 柯林斯我尝试了这个正则表达式 a zA Z 但没有成功 有人可以帮助我吗 附注我使用Java public static boolean valid
  • 从错误的线程访问领域 - Swift 3

    在我的顶部UITableViewController如下 let queue DispatchQueue label background 删除任务时 将执行以下操作 self queue async autoreleasepool let
  • Java.sql.Date 转 Oracle 数据库日期和时间戳

    我正在使用 Spring JDBC 模板进行 jdbc 操作 由于我使用的是 BeanPropertySqlParameterSource bean 的 START TIME 变量被分配为 java sql date 类型 在Oracle数
  • SQL Server 模式 SQL

    我有一张表格 列出了每个班级的学生成绩 我想要一个如下所示的结果集 BIO B CHEM C 其中 B 和 C 是该类的模式 我可以获得所有成绩的模式 但不确定如何获得每个班级的模式 这里 在 SQL 2005 2008 上是这样的 WIT
  • 用 Swift 重构解决方案

    我一直在通过 HackerRank 测试用例来学习编码考试 大部分情况下我都做得很好 但我对一些简单的案例很感兴趣 当我看不到解决方案时 你们都会帮助我 我正在解决这个问题 https www hackerrank com challeng
  • 如何通过SNMP查找打印机计数器

    我目前正在从事一个项目 涉及通过 SNMP 从打印机获取信息 现在我一直在测试 使用的打印机是 Lexmark X950 我一直在努力解决的一个问题是 我希望这个程序也适用于 HP Kyocera 或 Brother 打印机 但我使用的 O
  • 如何从Flask中的Form中获取多个选定的项目

    随着
  • 缩小、折叠或扫描(左/右)?

    我应该什么时候使用reduceLeft reduceRight foldLeft foldRight scanLeft or scanRight 我想要对它们的差异有一个直观 概述 可能有一些简单的例子 一般来说 所有 6 个折叠函数都对集
  • 有没有更简单的方法在 Java 中解析 XML?

    我正在尝试弄清楚如何解析一些 XML 对于 Android 应用程序 而用 Java 来解析它是多么困难 这似乎非常可笑 看起来它需要创建一个具有各种回调 startElement endElement 等 的 XML 处理程序 然后您必须
  • 将 IP 从 C 字符串转换为无符号整数?

    我有一个简短的问题 我有一个 C 字符串中的 IPv4 例如 192 168 0 1 我想将其转换为 uint32 t 我确信应该有一些功能 但我还没有找到 有任何想法吗 该函数称为inet aton int inet aton const
  • 如何使用yield和Iron-router?

    所以我现在正在尝试做一个基本的流星应用程序 这是三个文件 路由器 js Router configure layoutTemplate layout loadingTemplate loading notFoundTemplate notF
  • ptr_map 和指针

    我使用 boost 中的 ptr map 来存储从某些基本抽象类型派生的对象 class Entity virtual void foo 0 class Entity1 public Entity class Entity2 public
  • 如何通过 WMI 获取系统上的所有智能卡读卡器?

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