gpt4 book ai didi

c++ - 在使用时以编程方式弹出 USB 设备

转载 作者:行者123 更新时间:2023-11-30 20:39:05 26 4
gpt4 key购买 nike

如何以编程方式弹出 USB 设备(即使它正在使用中)?

场景:

  1. 连接到系统的 USB 设备。

  2. 我们通过“RegisterDeviceNotification”获取 WM_DEVICECHANGE 消息,通过该消息我们可以处理 DBT_DEVICEARRIVAL、DBT_DEVICEQUERYREMOVE 等事件。

  3. 现在如果设备正在使用中,如果我们想将其从资源管理器中弹出,则会提示“弹出 USB 大容量存储设备时出现问题”此设备当前正在使用中。关闭可能正在使用该设备的所有程序或窗口,然后重试。”

问题:1:如何在使用U盘时不提示而弹出U盘?

问题:2:当用户按下 USB 设备的浏览器弹出按钮时,如何获得通知?

提前致谢:)

最佳答案

嗯,你不能机械地弹出它。那么软件弹出它是什么意思呢?这意味着 Windows 将阻止为文件或目录创建任何进一步的句柄。因此,之后可以安全地移除 USB 内存棒

现在 USB 内存棒正在使用中意味着什么?这只是意味着有打开的 handle 。是否阻止创建更多句柄并没有什么区别。在 handle 打开的情况下取出 USB 内存棒意味着您可能会损坏 USB 内存棒上的内容。

因此,想要在使用时弹出 USB 内存棒并不是问题。这个问题根本没有任何意义。

请注意,Windows 已经告诉您实际上应该做什么:关闭可能正在使用该设备的所有程序或窗口,然后重试。

问题二同样也没有多大意义。当磁盘F:消失时,你为什么还要关心细节呢?毕竟,如果您有理由关心(例如打开文件),Windows 会阻止该操作。

关于c++ - 在使用时以编程方式弹出 USB 设备,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27620273/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com