【问题标题】:Windows - How do I disable the "Wrong Volume" error messageWindows - 如何禁用“错误卷”错误消息
【发布时间】:2014-03-16 03:54:09
【问题描述】:

我的应用程序正在后台读取/写入数据到可移动媒体 (USB DOK)。问题是在应用运行时拔掉USB,电脑会弹出错误信息:

错误的音量

驱动器中有错误的卷。请将卷插入驱动器 E:。

取消重试继续

这发生在 GetFileSize、ReadFile 等操作期间。显然,由于该应用程序应该在后台运行,我想抑制这些消息并静默失败。

顺便说一句-似乎给出这些消息的进程不是我的进程,而是 CSRSS.EXE(尽管原因肯定是我的进程的操作)。

我正在考虑的一个方向是切换到 NtQueryInformationFile、NtReadFile 等,但我宁愿不...

谢谢

【问题讨论】:

  • 在每次访问之前,您可以随时检查是否有东西连接到端口。如果不是,请不要执行该操作。如果那不可能,请保持原样。这是理想的工作方式。

标签: c++ windows


【解决方案1】:

尝试调用:

SetErrorMode(SEM_NOOPENFILEERRORBOX);

在你的 main 函数的开头。

来自documentation

找不到文件时系统不显示消息框。而是将错误返回给调用进程。

【讨论】:

    【解决方案2】:

    我建议您使用 Windows 系统托盘中的图标正确断开硬件连接,这样当您将其从驱动器中拉出时,它就不会被访问。或者至少先退出你的应用程序。

    【讨论】:

    • 谢谢,但这是不可能的。用户可以决定何时以及如何断开 USB。无论如何,我的应用程序不应该对用户可见。
    • 我建议保持原样。如果用户希望在没有正确卸载的情况下移除驱动器,那么他们应该会收到奇怪的错误消息。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-15
    • 1970-01-01
    • 1970-01-01
    • 2012-10-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多