Windows - 如何禁用“错误卷”错误消息

时间:2012-01-19 08:19:14

标签: c++ windows

我的应用程序是在后台读取/写入可移动媒体(USB DOK)的数据。问题是当应用程序运行时移除USB时,计算机会弹出错误消息:

错误的卷

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

取消再试一次继续

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

BTW - 似乎提供这些消息的进程不是我的进程,而是CSRSS.EXE(虽然原因绝对是我的进程中的操作)。

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

由于

2 个答案:

答案 0 :(得分:2)

尝试致电:

SetErrorMode(SEM_NOOPENFILEERRORBOX);

在主要功能的开头。

来自documentation

  

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

答案 1 :(得分:1)

我建议您使用Windows系统托盘中的图标正确断开硬件连接,以便在将其从驱动器中拉出时不会被访问。或者至少退出你的ap。