列出使用智能卡读卡器的进程

Posted

技术标签:

【中文标题】列出使用智能卡读卡器的进程【英文标题】:List processes that use the smart card readers 【发布时间】:2010-10-13 09:10:13 【问题描述】:

我正在编写一个必须处理智能卡读卡器的 Windows 服务。

很多时候,当我尝试连接到插入的智能卡时,SCardConnect() 失败并显示 SCARD_E_SHARING_VIOLATION 这基本上意味着:

由于其他未完成的连接,无法访问智能卡。

很公平。

我猜至少有一个其他进程试图同时访问 Smart。但是有没有办法确定它是哪个进程?

【问题讨论】:

我们在运行 HP Protect Tools 的 HP 机器上发现了这个问题,但目前还无法解决(没有卸载 hp Protect 工具)——您使用的是 HP 吗?跨度> 【参考方案1】:

如果您访问智能卡读卡器,我会尝试使用Process Explorer 查看您的应用程序打开的文件句柄。为此,您应该选择您的进程并按 Ctrl-H(菜单“视图”/“低窗格视图”/“Handes”)。在您知道智能卡读卡器的设备名称后,如果您收到SCARD_E_SHARING_VIOLATION 错误,您将能够找出使用该设备的其他进程。您应该只使用 Ctrl-F(菜单“查找”/“查找句柄或 DLL...”)来查找文件句柄。

【讨论】:

@ereOn,你在哪里可以找到它的句柄? @Abatonime:你能把你的问题表述得更清楚吗?你有什么问题?您需要本地化哪种打开的资源(句柄)? 我遇到了和 OP 完全相同的问题。我按照您的说明进行操作,但在 Process Explorer 中找不到句柄。我在问 OP 他是否能找到它。

以上是关于列出使用智能卡读卡器的进程的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 pyscard 列出智能卡上的文件

智能卡读卡器常见使用方法

智能卡读卡器常见使用方法

与 IC 读卡器和 SLE5528 智能卡配合使用

智能卡读卡器是不是支持所有智能卡型号?

发送 PPS 智能卡读卡器