我正在从批处理文件运行测试脚本。
因为是测试,所以程序偶尔会失败。只要返回错误代码,它就是文件,因此我可以继续并将特定测试标记为失败。
然而,在 Microsoft Windows 下可执行文件有一个非常烦人的行为——如果出现问题,它会弹出如下窗口:
This application has failed to start because foo.dll was not found, Re-installing the application may fix the problem
<OK>
或者更好:
The instruction at "..." referenced to memory at "..." ..
Click on OK to terminate the program
Click on CANCEL to debug the program
结果是已知的 - 脚本执行阻塞,直到有人按下“确定”按钮。而当我们谈论在某些 headless 虚拟机中可能在夜间自动运行的自动脚本时,它可能会出现很大问题。
有没有一种简单的方法可以防止这种行为,并且只是让应用程序以失败代码退出 - 无需更改程序本身的代码?
这可能吗?
最佳答案
答案如下:您需要禁用 WER .
我在 http://www.noktec.be/archives/259 找到的最简单的描述
只需(在 XP 上):右键单击“我的电脑”>“高级”>“错误报告”>“禁用”
瞧 - 程序无声崩溃!
当 DLL 丢失时,这不能解决问题,但这种情况很少见,这对我来说已经足够了。
关于windows - 运行批处理文件时如何防止失败程序(.exe)的错误弹出消息框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4062215/