DOSプロンプトを終了させるには?


ともとも  2002-06-06 23:53:59  No: 50222  IP: [192.*.*.*]

初めて質問します。よろしくお願いします。
ShellExecute()やCreateProcess()で外部実行ファイル(Dosプロンプト上)を起動させたんですが、それを終了させれません。
PostMessage()やExitProcess()を使うと、ほかのアプリは終了させれるんですが、DOSプロンプトだけは何故か・・・終了させれる方法ってあるんですか?

編集 削除
いもちぃ  2002-06-07 09:31:31  No: 50223  IP: [192.*.*.*]

command.comを実行対象として、パラメーターに実行したいファイルを入れると
だめですかね?

編集 削除
ともとも  2002-06-10 22:29:24  No: 50224  IP: [192.*.*.*]

まず、ExitProcessって自分自身を終わらせるものなんですね。勘違いしてました。
試してみたのですが、やはりDOSウィンドウそのものは落ちないです。
最終手段でTerminateProcessで閉じることは出来るのですが、この方法は危険らしいので安全に落とす方法が今だ見つからず・・・
PostMessageでウィンドウ名を与えて、WM_QUITを送るとほかのウィンドウは落ちますが、DOSウィンドウだけはエラーが発生します。なんとか出来ないでしょうか?

編集 削除
YuO  2002-06-11 08:27:18  No: 50225  IP: [192.*.*.*]

安全に終了させるためには,相手が自分で終了してくれる必要があります。

非Consoleプログラム相手にWM_CLOSE投げると終了する(ことが多い)のは,
通常WM_CLOSEの結果として,受け取ったウィンドウが自プロセスを終了させているためです。
#最終的にWM_QUITをメッセージループが受け付けてメッセージループから抜ける為。
Consoleプログラムの場合,通常メッセージループを持っていないですから,
他の方法で「終了してくれ」と要求する必要があります。
EventとかMutexとか……。

編集 削除
さなえ  2002-06-11 11:12:13  No: 50226  IP: [192.*.*.*]

W2K VC6
CreateProcess でコンソールアプリを実行すると終了後 DOS画面も消えます。
スタートメニューから「ファイル名を指定して実行」を使用した場合もです。
OSに依存するのでしょうか?  (私何か誤解してます?)

編集 削除