外部プログラムの実行

解決


まつもと  2003-02-17 20:46:57  No: 2960  IP: [192.*.*.*]

みなさんはじめまして。

現在、CreateProcess APIを使用して外部プログラムを
実行させようとしています。

正常に起動は行えるのですが、
起動完了を待たずに次の処理へ進んでしまいます。
外部プログラムの起動完了後に次の処理へうつるには、
どのようにすればいいのでしょうか?

いろいろと調べて、外部プログラムが終了後に
次の処理へうつるにはWaitForSingleObject APIを
使用すればいいのはわかったのですが・・・

ご存知の方、宜しくお願い致します。

編集    削除
たかみちえ  URL  2003-02-17 21:50:42  No: 2961  IP: [192.*.*.*]

ProcessInfoで得たプロセスの分待てばいいのですけど…。

いろいろ面倒なので、うちの"おんぷ村倉庫">"Delphiユニット">stdFilesユニットの、
RunAs関数を使うといいでしょう。
  最後の引数のWaitFlagに、wfWaitLongか、wfWaitFullを指定してください。

  wfWaitFullは、一瞬で動作が終わるアプリケーション用、
wfWaitLongは、長時間動作が終わらないアプリケーション用です。
  同じところにある、関数説明一覧にも書いてあります。
(まぁ、wfWaitFullは下位互換性のためにあるといっても、よさそうですけど…(^^ゞ)

編集    削除
たかみちえ  URL  2003-02-17 21:52:37  No: 2962  IP: [192.*.*.*]

あ、アドレス忘れました。
といっても、[HomePage]からでもたどっていけますけど。
http://TakamiChie.tripod.co.jp/

編集    削除
まつもと  2003-02-17 22:11:14  No: 2963  IP: [192.*.*.*]

たかみちえ さんありがとうございました。
無事に思い通りの動きになりました。

その他の関数も拝見しました。
大変勉強になりました。

編集    削除