如何检测 SD 卡何时插入?

Posted

技术标签:

【中文标题】如何检测 SD 卡何时插入?【英文标题】:How can I detect when an SD card is plugged in? 【发布时间】:2010-10-09 16:12:12 【问题描述】:

我正在用 C++ 编写一个 PC 应用程序,该应用程序需要检测用户何时将 SD 卡连接到他/她的计算机。我知道如何检测读卡器何时连接,但我不知道如何检测单个卡何时连接/移除。

Windows 是否有 IO 接口来检测 SD 卡的到达/移除?

[更新]建议的 WM_DEVICECHANGE 技术仅适用于检测何时插入 SD 卡读卡器。它不检测何时将单个卡插入读卡器。

【问题讨论】:

【参考方案1】:

认为这就是你需要的:

http://www.codeproject.com/KB/dotnet/devicevolumemonitor.aspx

【讨论】:

【参考方案2】:

查看来自WM_DEVICECHANGE 的消息,这里是example

【讨论】:

【参考方案3】:

WM_DEVICECHANGE 可能是您的答案。 Here 是 CDROM 的示例。

【讨论】:

【参考方案4】:

查看 Windows 便携式设备 API,它具有允许您将其连接到 SD 读卡器(称为存储设备)并在插入或移除卡时获取事件的功能。

它只有两个(可能是主要的)缺点:

需要 Windows Vista 或更高版本 它只有一个 COM API,所以如果你想从 .NET 程序中使用它,你要么有很多互操作,要么你必须用 C++ 或 C++/CLI 编写一个包装器

【讨论】:

以上是关于如何检测 SD 卡何时插入?的主要内容,如果未能解决你的问题,请参考以下文章

arm Linux 如何自动检测并mount SD卡,以及如何得知已经mount

如何检测用户何时在浏览器当前选项卡视口中放置图像?

如何使用 Javascript 在 Chrome 中检测选项卡何时聚焦或不聚焦?

如何检测win32上的datacard连接和断开事件?

Android SD卡检测和SP数据保存不及时解决方案

如何检测用户何时在 android 设备上插入耳机? (与 ACTION_AUDIO_BECOMING_NOISY 相反)