在插入新阅读器后,我刚刚检测到奇怪的偶数。这是在初始化时间的开始(不到 1 秒)。
在此期间GetStatusChange
,尽管读卡器中没有卡,但该函数可以返回无效事件,例如卡存在。最后,状态最终会稳定下来;无卡时不返回卡事件。
我能以聪明的方式摆脱这种情况吗?简单的解决方案是尝试调用SCardStatus
函数来验证返回的事件GetStatusChange
是否正确,并希望该函数返回有效的答案,但是这种解决方案很重。
我使用的是 Windows 7,但在 Vista 和以前的操作系统上也检测到了同样的问题。
更新:唯一有效的解决方法是将 SCardListCards 与 SCardGetStatusChange 结合使用(SCardStatus 需要 Connect,它会造成真正的混乱)。通过这种解决方法,我只是检查了插入阅读器后立即引发的事件是否是有效事件。但是这个解决方案很重。