アプリケーションがクラッシュした場合、クラッシュをインターセプトします(関数SetUnhandledExceptionFilterを使用)。クラッシュハンドラーで、ミニダンプファイルを作成し、アプリケーションがクラッシュしたことをユーザーに通知します。この通知は、フラグMB_TASKMODALのMessageBoxを介して行われるため、アプリケーションの残りの部分はブロックされます。
残念ながら、それは再描画メッセージとタイマーメッセージの処理をブロックしません。特にタイマーメッセージは、あらゆる種類の中間アクション(アプリケーションにロードされているプラグインによって異なります)を実行したり、バックアップファイルに保存したりする可能性があるため、非常に煩わしいものです。
Windowsが再ペイントメッセージとタイマーメッセージを送信しないようにする簡単な方法はありますか(「クラッシュしました」ポップアップを表示している間)?
別の方法は、クラッシュハンドラーで設定され、ロジックを実行するアプリケーションのすべての場所でチェックされるグローバル変数を使用することですが、これは私にはかなり「汚い」柔軟性のないソリューションのようです。もっと簡単な方法はありませんか?(そして、メッセージボックスのメッセージループがメッセージボックスメッセージのみを処理し、他のウィンドウのメッセージを処理しないことを確認するだけです)。
サンクスパトリック