3

そのOSで実行中のプロセスが停止するたびにOSから通知されるプログラムを作成したいと思います。

以前に存在したプロセスが停止した場合、毎回自分でポーリングして比較したくありません。プロセスの終了が発生するたびに、プログラムが OS によって警告されるようにします。

どうすればいいですか?いくつかのサンプル コードは非常に役立ちます。

PS: Java/C++ でのアプローチを探しています。

4

3 に答える 3

3

PsSetCreateProcessNotifyRoutine()が必要なようです。開始するには、次の記事を参照してください。

http://www.codeproject.com/KB/threads/procmon.aspx

于 2009-09-08T10:07:03.120 に答える
1

Unix では、sigchldシグナルを使用してプロセスの終了を通知できます。ただし、これには、監視対象のプロセスが監視プロセスの子プロセスであることが必要です。

Windows では、プロセスへの有効なハンドルが必要になる場合があります。を使用して自分でプロセスを生成するCreateProcessと、ハンドルを無料で取得できます。それ以外の場合は、別の方法で取得する必要があります。WaitForSingleObjectその後、ハンドルを呼び出してプロセスが終了するのを待つことができる場合があります。

申し訳ありませんが、これに関するサンプル コードはありません。Windows でのプロセス ハンドルの待機が、プロセスの終了を実際に待っているかどうかもわかりません (プロセス ハンドルが「シグナル状態」などになる他の「重大な」状態とは対照的に)。

于 2009-09-08T09:59:17.830 に答える