如何在C++中监听智能卡插入和删除事件?

Ali*_*oop 1 c++ events smartcard

我想听一下智能购物车的插入和删除事件......该应用程序适用于Windows,智能卡使用的是x.509证书.我使用的读卡器是插入大多数新笔记本电脑的标准读卡器,您也可以购买它们以供USB使用.

我发现的一件事是:cryptware.it/apidoc/scapi/index.html但它不是唯一的方法,我只想知道我的选择......

有谁知道最好的方法是什么?

提前致谢!

Pet*_*erT 5

Windows API具有以下功能:

LONG WINAPI SCardGetStatusChange(
  __in     SCARDCONTEXT hContext,
  __in     DWORD dwTimeout,
  __inout  LPSCARD_READERSTATE rgReaderStates,
  __in     DWORD cReaders
);
Run Code Online (Sandbox Code Playgroud)

然后,您可以检查是否rgReaderStates包含SCARD_STATE_EMPTYSCARD_STATE_PRESENT.在此处阅读详细信息:MSDN说明

严格来说,它不是事件驱动的,但它会阻止执行直到发生更改.因此,通过创建一个在循环中调用它的单独线程,您可以自己轻松生成事件.