1

Windows プログラム (C/C++) が Taskmgr.exe によって強制終了されたときに通知を受け取る方法はありますか? 特別な Windows メッセージを受信して​​いるようには見えません。終了するだけです。

終了を止めたくありません。手動で終了したという何らかの通知を書きたいだけです。

ありがとう。

4

2 に答える 2

3

完全な Windows アプリの場合は、アプリケーションが終了する直前に、メッセージ ポンプで WM_QUIT を取得する必要があります。

MSDN の状態: http://msdn.microsoft.com/en-us/library/windows/desktop/ms632641(v=vs.85).aspx

これはウィンドウのメッセージ キューにはポストされません。メイン メッセージ ポンプでのみ取得できます。

これは、きれいに終了した場合のみです。プロセスが強制終了された場合、これは決して起こりません。

次の起動時に強制終了されたことを検出できる方法は、起動時にファイルを作成し、シャットダウン時に破棄することです。次の起動時にファイルがまだ存在する場合、プロセスが強制終了されたことはわかりますが、プロセスが強制終了されたかどうかはわかりませんエラーが原因で、またはユーザーの要求で強制終了されたため、強制終了されました。

于 2012-08-16T10:35:40.637 に答える
1

プロセスがいつ強制終了されたかをすぐに知る必要がある場合、私が知っている唯一の方法は、別のプロセスをウォッチドッグとして使用することです。問題のプロセスへのハンドルを取得するために OpenProcess() を使用する場合、(WaitForSingleObject などを介して) そのハンドルを待つことができ、プロセスが終了するとハンドルが通知されます。シャットダウンが正常か強制的かを追跡するために、ターゲット プロセスと何らかの調整を行う必要があります。

于 2012-08-16T11:29:42.443 に答える