在应用程序运行时禁用WER

时间:2012-09-17 15:19:02

标签: c++ windows-error-reporting

我正在开发一个不断打开IE,执行任务,关闭它然后重复的应用程序。但是,如果IE在执行期间崩溃,系统将准备继续进行下一次迭代,但错误报告仍然保持打开状态,并且不允许进程完全关闭。这意味着它会继续占用内存,直到用户单击对话框说要忽略该错误。

目前我正在研究两种解决方案,使用VectoredExceptionHandlers,以及完全禁用WER的能力。

我对VectoredExceptionHandlers的理解是,它们将拦截我的应用程序抛出的任何异常,并在它们进入WER之前处理它们。但是,由于崩溃实际上发生在我的应用程序启动的IE进程中,我不确定这些处理程序是否仍然能够阻止WER接收异常。

我也不希望在系统上完全禁用WER,因为StackOverflow上的其他问题表明,我只希望在我的应用程序运行时禁用它。

有没有人对这些选项有更多的了解或更好的方法来解决这个问题?

1 个答案:

答案 0 :(得分:1)

MSDN中的WER Settings页面可能是您想要查看的内容。注册表中有一个部分用于排除应用程序。并且似乎可以调用此WerAddExcludedApplication函数。从Vectored Exception Handling上的页面来看,它可能不会帮助您从其他应用程序中捕获异常。