列出使用智能卡读卡器的进程
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 他是否能找到它。以上是关于列出使用智能卡读卡器的进程的主要内容,如果未能解决你的问题,请参考以下文章