在使用 USB 设备时以编程方式弹出该设备
Programmatically Eject USB Device while it is in use
即使
USB 设备正在使用中,如何以编程方式弹出它?
场景:
连接到系统的USB设备。
我们通过"注册设备通知"获得WM_DEVICECHANGE消息,通过该消息我们可以处理DBT_DEVICEARRIVAL,DBT_DEVICEQUERYREMOVE等事件。
- 现在,如果设备正在使用中,如果我们想从资源管理器中弹出它,它会提示为"弹出USB大容量存储设备时出现问题"该设备当前正在使用中。关闭可能正在使用该设备的所有程序或窗口,然后重试。
问题:1:如何在使用时没有任何提示地弹出USB?
问题:2:当用户按下USB设备的资源管理器弹出时,我们如何获得通知?
提前致谢:)
好吧,你不能机械地弹出它。那么软件弹出它意味着什么?这意味着 Windows 将阻止为文件或目录创建任何进一步的句柄。因此,之后移除 U 盘是安全的
现在,正在使用USB记忆棒是什么意思?这只是意味着有开放的手柄。是否阻止创建任何进一步的句柄没有区别。在手柄打开时取出 U 盘意味着您可能会损坏 U 盘上的内容。
因此,这不是想要在使用时弹出USB记忆棒的问题。这个问题根本没有意义。
请注意,Windows 已经告诉您实际上应该执行的操作:关闭可能正在使用该设备的任何程序或窗口,然后重试。
问题二同样也没有多大意义。当磁盘F:
消失时,您为什么要关心细节?毕竟,如果您有理由关心(例如打开文件(,Windows会阻止该操作。
相关文章:
- 使用 Gtkmm 以编程方式选择 Gtk::TextView 中的文本
- 在没有管理员权限的情况下,在 c++ 中以编程方式将程序添加到启动
- 如何以编程方式将音频从任何录制设备路由到任何播放设备
- 我是否可以使用 win32 句柄以编程方式记录发送到/接收到 USB/COM 的内容
- 如何以编程方式使窗口全屏显示?
- 终端如何在 shell 提示符下以编程方式阻止退格,以便您无法在其上退格,例如 $ 表示 bash 或 C:\blah\>
- 如何使用打印到 PDF 打印机在 MFC 和 CView 中以编程方式打印而不提示输入文件名?
- 如何以编程方式显示功能区按钮的下拉菜单?
- 是否可以以编程方式构造 std::initializer_list?
- 在 Visual C++ 中以编程方式更改按钮的背景图像
- 附加调试器并以编程方式获取变量地址 Visual Studio
- 以编程方式重新连接断开的 VHD 链
- 如何以编程方式获取任务管理器进程CPU使用率(不是PerfMon API)
- 以编程方式在任何按钮上突出显示 Qt 鼠标悬停按钮
- 以编程方式防止重命名或删除文件,但仍使其可写
- 以编程方式连接子图
- 如何以编程方式区分在内存的堆和堆栈部分创建的对象
- 如何通过wxWidgets中的"wxWindow::PopupMenu"以编程方式关闭用作弹出菜单的
- 在使用 USB 设备时以编程方式弹出该设备
- win32c++弹出窗口在以编程方式调整大小时闪烁很多