我从应用程序启动一个进程来监视它。它可能会崩溃或挂起。
监控应用程序已为此做好准备,并且可以处理此问题。
但在崩溃时,窗口会显示一个应用程序崩溃对话框。此时,崩溃的进程仍在进程列表中。但是,如果进程将被监控应用程序终止(在TerminateProcess
超时后),则对话框不会消失。
我尝试使用WerAddExcludedApplication
和WerRemoveExcludedApplication
禁用此应用程序的Windows错误报告,但这只删除了联机搜索解决方案的选项。
我也不想完全禁用WER。
是否有其他方法可以通过编程方式为给定的可执行文件禁用此对话框(它并不总是相同的)?
我想您要找的是DontShowUI
注册表项。这将启用Windows错误报告(WER),并且不会在未处理的异常上弹出任何内容。
DontShowUI(REG_DWORD)可能的值:
0-UI(默认)
1-无UI(启用或禁用WER UI)
WER注册表设置链接:https://msdn.microsoft.com/en-us/library/windows/desktop/bb513638(v=vs.85).aspx
您可以在注册表中设置此项(也可以在HKEY_CURRENT_USER中):
[HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsWindows Error Reporting]
"DontShowUI"=dword:00000001
如果你设置了这个键,但仍然看到一个关于未处理异常的对话框,我会建议你在注册表中搜索任何Value=DontShowUI,因为我有时会发现它们设置在奇怪的地方(并且受到Windows的尊重)。