c++ - 在应用程序运行时禁用 WER

标签 c++ windows-error-reporting

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

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

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

我也不希望像 StackOverflow 上的其他问题所建议的那样在系统上完全禁用 WER,我只想在我的应用程序运行时禁用它。

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

最佳答案

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

关于c++ - 在应用程序运行时禁用 WER,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12462302/

相关文章:

windows - 哪些版本的Windows通过其错误报告生成本地故障转储文件?哪个不?

c++ - "typedef"类型名称可以像 "struct"定义那样声明指向结构的指针吗?

c++ - Windows 8/RT C++ 中的平台::字符串函数

windows - Windows错误报告在哪里创建转储文件

php - 如何强制apache崩溃?

c++ - Windows 错误报告何时创建转储文件?它是可配置的吗?这在 Windows 7 中有变化吗?

c++ - 确定 vector<char> 中出现频率最高的 char 元素?

c++ - 将缓冲区数据解析为结构

c++ - 动态库问题 : dlsym() failing to find smbol

c# - 使用 WER(Windows 错误报告)工具收集我们程序的小型转储