Last Updated 2004/03/03 |
Programming Tips Visual C++ API | 索 引 |
プロセスの終了
2004/03/03
CreateProcess() で起動させたアプリを終了させる. 以下の様にプロセスハンドルとスレッドハンドルをクローズしてもアプリケーションを終了させるということにはならない.
TerminateProcess() や TerminateThread() は緊急遮断に使用するものであり,終了するが正常な終了方法ではない. WM_CLOSE を送信するのが一番いいが,その送信先のウィンドウハンドルの取得が問題である.FindWindow() での検索は同じクラス名の別のアプリを終了させたい場合に不都合がある. CreateProcess() にて起動したアプリケーションであればプロセスIDが分かるのでそこから該当のウィンドウを検索する. トップレベルウィンドウを検索して,そのプロセスIDが CreateProcess() で起動したアプリケーションのプロセスIDと合致すれば,それが終了させるウィンドウハンドルである.
参照 CreateProcess アプリケーション終了方法 クラス内コールバック関数 プロセスIDでプロセス強制終了 |
|