Windows プログラム (C/C++) が Taskmgr.exe によって強制終了されたときに通知を受け取る方法はありますか? 特別な Windows メッセージを受信しているようには見えません。終了するだけです。
終了を止めたくありません。手動で終了したという何らかの通知を書きたいだけです。
ありがとう。
完全な Windows アプリの場合は、アプリケーションが終了する直前に、メッセージ ポンプで WM_QUIT を取得する必要があります。
MSDN の状態: http://msdn.microsoft.com/en-us/library/windows/desktop/ms632641(v=vs.85).aspx
これはウィンドウのメッセージ キューにはポストされません。メイン メッセージ ポンプでのみ取得できます。
これは、きれいに終了した場合のみです。プロセスが強制終了された場合、これは決して起こりません。
次の起動時に強制終了されたことを検出できる方法は、起動時にファイルを作成し、シャットダウン時に破棄することです。次の起動時にファイルがまだ存在する場合、プロセスが強制終了されたことはわかりますが、プロセスが強制終了されたかどうかはわかりませんエラーが原因で、またはユーザーの要求で強制終了されたため、強制終了されました。
プロセスがいつ強制終了されたかをすぐに知る必要がある場合、私が知っている唯一の方法は、別のプロセスをウォッチドッグとして使用することです。問題のプロセスへのハンドルを取得するために OpenProcess() を使用する場合、(WaitForSingleObject などを介して) そのハンドルを待つことができ、プロセスが終了するとハンドルが通知されます。シャットダウンが正常か強制的かを追跡するために、ターゲット プロセスと何らかの調整を行う必要があります。