アプリケーションの回復と再起動の使用

アプリケーションは Application Recovery and Restart (ARR) を使用して、ハンドルされない例外やアプリケーションの応答が停止したために、アプリケーションが終了する前にデータと状態情報を保存できます。 要求された場合は、アプリケーションも再起動されます。

復旧または再起動に登録すると、登録情報がプロセスに追加されます。 Windows エラー報告 (WER) では、登録情報を使用して復旧コールバックを呼び出し、アプリケーションを再起動します。 たとえば、回復用に登録し、アプリケーションでハンドルされない例外が発生した場合、WER はダイアログをユーザーに表示します。このダイアログ ボックスを使用すると、ユーザーはソリューションをオンラインで確認したり、プログラムを閉じたり、プログラムをデバッグしたりできます。 ユーザーがソリューションにチェックするか、プログラムを閉じるかのどちらかを選択した場合、WER は登録済みのコールバックを呼び出し、アプリケーションにデータと状態情報を保存する機会を与えます。 回復が完了すると、アプリケーションは終了します。

再起動に登録し、アプリケーションでハンドルされない例外が発生した場合、WER はユーザーに同じダイアログを表示しますが、プログラムを閉じる代わりにプログラムを再起動するオプションを提供します。 回復と再起動の両方に登録すると、最初に回復が行われます。その後、アプリケーションが終了して再起動されます。

応答しないアプリケーションも同様の方法で処理されます。 アプリケーションが Windows メッセージに 5 秒間応答せず、ユーザーがアプリケーションとの対話を試みると、アプリケーションは応答しないと見なされます。タイトル バーに (応答していません) と表示されます。 WER は、ユーザーがシステムの閉じるボタンをクリックするとアクティブ化されます。

アプリケーションが応答しなくなるか、ハンドルされない例外が発生する前に、回復または再起動のために登録するか、登録を削除する必要があります。 ただし、復旧コールバックでは、再起動コマンド ラインを変更できます。

復旧または再起動の登録の詳細については、次のトピックを参照してください。

回復と再起動の機能を実装するサンプルについては、WinBase\WindowsErrorReporting フォルダーにある Windows SDK の AppRecovery と AppRestart のサンプルを参照してください。