2

我从应用程序启动一个进程来监视它。它可能会崩溃或挂起。

监控应用程序为此做好了准备并且可以处理它。

但是在崩溃窗口上会显示一个应用程序崩溃对话框。此时崩溃的进程仍在进程列表中。但是如果进程将被监控应用程序终止(在超时后),对话框不会消失TerminateProcess

我尝试使用WerAddExcludedApplicationand禁用此应用程序的 Windows 错误报告,WerRemoveExcludedApplication但这只会删除在线搜索解决方案的选项。

我也不想完全禁用 WER。

是否有另一种方法可以以编程方式为给定的可执行文件禁用此对话框(它并不总是相同)?

4

1 回答 1

2

我认为您正在寻找的是DontShowUI注册表项。这将使 Windows 错误报告 (WER) 处于启用状态,并且不会在未处理的异常上弹出任何内容。

DontShowUI (REG_DWORD) 可能的值:

0 - 用户界面(默认)

1 - 无 UI(启用或禁用 WER UI)

链接到 WER 注册表设置:https ://msdn.microsoft.com/en-us/library/windows/desktop/bb513638(v=vs.85).aspx

您可以在此处的注册表中进行设置(或在 HKEY_CURRENT_USER 中):

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting]
"DontShowUI"=dword:00000001

如果你设置了这个键并且仍然看到一个关于未处理异常的对话框,我建议在注册表中搜索任何 Value = DontShowUI,因为我有时会发现它们设置在奇怪的地方(并且被 Windows 尊重)。

于 2016-05-05T21:00:59.730 回答