2

アプリケーションからプロセスを開始して監視します。クラッシュまたはハングアップする可能性があります。

監視アプリケーションはこれに備えており、これを処理できます。

しかし、クラッシュ ウィンドウでは、アプリケーション クラッシュ ダイアログが表示されます。この時点で、クラッシュしたプロセスはまだプロセス リストにあります。ただし、監視アプリによってプロセスが終了される場合 ( でタイムアウトした後)、ダイアログは消えませんTerminateProcess

WerAddExcludedApplicationと を使用して、このアプリケーションの Windows エラー報告を無効にしようとしましたWerRemoveExcludedApplicationが、オンラインで解決策を検索するオプションが削除されるだけです。

また、WER を完全に無効にしたくもありません。

特定の実行可能ファイルに対してこのダイアログをプログラムで無効にする別の方法はありますか (常に同じであるとは限りません)。

4

1 に答える 1

2

あなたが探しているのは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_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting]
"DontShowUI"=dword:00000001

このキーを設定しても未処理の例外に関するダイアログ ボックスが引き続き表示される場合は、レジストリで Value = DontShowUI を検索することをお勧めします。なぜなら、それらが奇妙な場所に設定されている (そして Windows によって受け入れられている) ことがあるからです。

于 2016-05-05T21:00:59.730 に答える