windows
延迟写入失败
错误提示
]
如果你的U盘在复制文件时突然拔出,Windows XP会在右下角的托盘区域创建一个感叹号的图标,并弹出上面的警告。而且在事件查看器中可以找到上面这个警告。 因为我现在写的程序会自己在复制完成后验证数据的完整性,而且允许用户中途突然拔出。但是这个警告弹出令人不胜其烦。 我刚开始用禁止托盘气泡的方法: 将注册表中 HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionExplorerAdvanced 的EnableBalloonTips修改为0 (注意改动后,要结束掉explorer.exe,然后新建explorer.exe) 这样,虽然气泡警告不再弹了,但是那个警告图标依然会在托盘创建。我后来想把那个图标也隐藏,但是没找到办法。 现在终于找到解决办法了:就是直接修改windows的错误提示模式。 在注册表的下面这个位置: HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlWindows 找到那个ErrorMode项。默认应该是0。下面列出了ErrorMode值的含义:
ErrorMode: 0 - All messages are visible (default value). 1 - Only system messages are invisible. An example of this type of message is: “Virtual Memory Minimum Too Low.” 2 - All messages are invisible. An example of this type of message is: “Unable to Locate Component” shown when application can’t load DLL statically linked to it.
把ErrorMode的值改为2,就不会再弹出烦人的提示了。我改了之后重启了下,可能不重启也可以。
顺便说一下,如果想了解windows的注册表中各项的意义,请看这里:http://technet.microsoft.com/en-us/library/cc974061.aspx
参考资料: http://sdt.sumida.com.cn:8080/cs/blogs/wicky/archive/2006/09/22/422.aspx http://msdn.microsoft.com/en-us/library/ms940854(v=winembedded.5).aspx http://technet.microsoft.com/en-us/library/cc963244.aspx http://msdn.microsoft.com/en-us/library/ms681987(v=vs.85).aspx http://msdn.microsoft.com/en-us/library/ms684928(v=vs.85).aspx