現在あるソフトを作成しています。このソフトは複数のEXEを起動します。
なのでデバッグ実行するたびに複数のEXEが起動します。
これらの複数のEXEを終了する為にタスクマネージャにある
プロセスツリーの終了 をしています。
これを簡単に実行できるようにしたいのですが、
親プロセスは終了できましたが子プロセスも一緒に終了させる方法がわかりません。
親プロセスの終了は
1.ウィンドウハンドルの取得 FindWindow
2.プロセスIDの取得 GetWindowThreadProcessId
3.プロセスハンドルの取得 OpenProcess
4.終了ステータスの取得 GetExitCodeProcess
5.プロセスの終了 TerminateProcess
で行っています
環境
VC++6.0 SP5/WIN2000 SP3/MFC 使用
何か情報ないでしょうか?
宜しくお願い致すます
Win32 でアプリケーションを列挙する方法
Microsoft 文書番号: JP175030
をみると、Win95では親プロセスがわかるらしいが、NT系では
どうするんだろうか。未確認だけど、以下参照
http://www.experts-
exchange.com/Programming/Programming_Platforms/Win_Prog/Q_20249810.html
http://www.codeguru.com/win32/ntparent.shtml
NT4.0 以外は CreateToolhelp32Snapshot,Process32First,Process32Next が
使えるようですので、これで子プロセスを列挙して全部終了って方法では
いかがでしょうか。
(ボコノン教徒さんが示してくださった JP175030 に書いてある方法です)
WindowsXP Pro SP1 で試してみたら上手くいきました。