隐藏错误报告窗口

时间:2009-05-03 21:01:19

标签: .net winapi error-handling

我有以下问题:
我的ASP.Net应用程序接收简单控制台程序的C ++源代码,使用cl.exe(命令行VC ++编译器)编译它并使用System.Diagnostics.Process运行它。

ASP.Net应用程序在PC上运行,可用于其他工作(它不是服务器,只是一台工作机器)。我从用户隐藏运行程序窗口(使用Process.CreateNoWindow和Process.WindowStyle = ProcessWindowStyle.Hidden属性),但有时收到源可能包含一些崩溃指令(如访问无效的内存地址或其他东西)和程序崩溃。 Windows显示错误报告窗口(如果是Vista - 窗口,其中包含消息“Windows正在检查问题的解决方案...”),在这种情况下会分散用户的注意力并使他感到困惑。

也许有一些方法可以阻止显示此消息或自动关闭它?我有很多关于WinAPI的谷歌,但找不到解决方案。如果单个进程不可能 - 也许我可以暂时禁用整个系统上的这个窗口?

2 个答案:

答案 0 :(得分:1)

从Windows Vista开始,您可以使用WinAPI函数WerAddExcludedApplication为特定应用程序禁用“Windows错误报告”。

请参阅:http://msdn.microsoft.com/en-us/library/bb513617(VS.85).aspx

在Vista之前的Windows版本中,必须使用函数AddERExcludedApplication

请参阅:http://msdn.microsoft.com/en-us/library/bb513614(VS.85).aspx

答案 1 :(得分:0)