.NET TIPS

[アプリケーション・エラー]ダイアログを非表示にするには?

デジタルアドバンテージ 遠藤 孝信
2005/02/11

 「Windows TIPS:Microsoftへのエラー報告ダイアログを無効にする」で紹介されているように、[エラー報告]ダイアログで次の画面のように設定すると、通常の環境ではアプリケーション・エラー発生時に何のダイアログも表示しないようにできる。

[エラー報告]ダイアログ
コントロール・パネルの[システム]を実行し、[詳細設定]タブにある[エラー報告]ボタンをクリックすると表示できる。

 しかし、Visual Studio .NET(以下、VS.NET)をインストールしている場合には、上記のような設定を行っていてもアプリケーション・エラー発生時には次のような[アプリケーション エラー]ダイアログが表示される。

[アプリケーション エラー]ダイアログ
VS.NETをインストールしているとアプリケーション・エラー発生時にはこのようなダイアログが表示される。[OK]ボタンで何もせずにプログラムを終了、[キャンセル]ボタンではデバッガを起動する。

 これはアプリケーション・エラーの発生を報告しつつ、VS.NETインストール時に設定されたデバッガ(デフォルトではVS.NET)を起動するかどうかをユーザーに問い合わせるためのものだ。

 このような選択のためのダイアログが表示されるのは、VS.NETのインストールによりデバッガの自動起動がオフとなるためである。

レジストリによるデバッガの自動起動設定

 アプリケーション・エラー発生時におけるデバッガの自動起動の設定は、レジストリの次のキーで設定されている。

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebug

 VS.NETをインストールした状態では、このキーの内容は次のようになっている。

レジストリにおけるAeDebugキーの内容
これはVS.NETをインストールしている場合。デバッガの自動起動はオフ、デバッガとしてvs7jit.exeが設定されている。VS.NETインストール前のDebuggerのデータはPreVisualStudio7Debuggerに保存されている。

 「Auto」はデバッガの自動起動設定を示すもので、これが「0」の場合には自動起動はオフとなる。また、デバッグ時に起動するデバッガは「Debugger」により設定されている。VS.NETがインストールされた状態では、これには上記の画面のように「vs7jit.exe」というアプリケーションが設定されており、このアプリケーションはデバッガを選択するための次のような画面を表示する。

vs7jit.exeにより表示されるデバッガ選択画面

 ちなみに、レジストリでのAeDebugキーで、「Auto」を「1」に設定すると、アプリケーション・エラー発生時には、[アプリケーション エラー]ダイアログが表示されずに、いきなりこの画面が表示されることになる。

デバッガの設定をVS.NETインストール前に戻すには

 VS.NETがインストールされた状態でも、アプリケーション・エラー発生時に何も表示されないようにするには、上記のレジストリの設定をVS.NETをインストールする前の状態に戻せばよい。Windowsのインストール時にはAeDebugキーの設定内容は次のようになっている。

Windowsのインストール直後のAeDebugキーの内容
アプリケーション・エラー発生時にはdrwtsn32.exe(Windowsワトソン博士)が自動起動するようになっている。

 これは、[アプリケーション エラー]ダイアログを表示せずに、デバッガとしてdrwtsn32.exe(Windowsワトソン博士)を自動起動するという設定である。drwtsn32.exeは起動されてもログ・ファイルを更新するだけで、画面には何も表示しない。

 このようなレジストリの修正は、drwtsn32.exeの「-i」オプションにより行える。つまり、コマンド・プロンプトから次のように実行すればよい。

drwtsn32.exe -i

 VS.NETをインストールした環境でこれを実行した場合には、AeDebugキーの内容は次のようになる。

「drwtsn32.exe -i」実行後のAeDebugキーの内容
AutoとDebuggerのデータが初期状態に戻る。

 PreVisualStudio7Debuggerの値は削除されないが、これは残っていても特に問題ないと思われる。End of Article

カテゴリ:開発環境&ツール 処理対象:デバッガ
 
この記事と関連性の高い別の.NET TIPS
起動時にタスクトレイのアイコンのみを表示するには?
レジストリの値を取得するには?
適切に処理されなかった例外をキャッチするには?
VS.NET 2003プロジェクトをVS.NET 2002で開くには?
C#のソース・コードを実行するには? - VS.NET
このリストは、(株)デジタルアドバンテージが開発した
自動関連記事探索システム Jigsaw(ジグソー) により自動抽出したものです。
generated by

「.NET TIPS」


Insider.NET フォーラム 新着記事
  • 第2回 簡潔なコーディングのために (2017/7/26)
     ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている
  • 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
     Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう
  • 第1回 明瞭なコーディングのために (2017/7/19)
     C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える
  • Presentation Translator (2017/7/18)
     Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Insider.NET 記事ランキング

本日 月間