パスワードを忘れた? アカウント作成
546759 journal

A7Mの日記: 覚え書き:TJvCreateProcessの使い方

日記 by A7M
JVCLのTJvCreateProcessがかなり便利。

WIN32APIのCreateProcessをラップするコンポーネントなんだけど、
子プロセスがコンソールアプリの場合、標準入出力のリダイレクトまでやってくれる。

使い方は、CommandLineプロパティにコマンドラインを設定し、Runメソッドを呼び出せばとりあえずOK。

子プロセスの終了の監視は、こんな感じでStateプロパティをみるか、

    JvCreateProcess1->Run();
    while (JvCreateProcess1->State != psReady) {
        Sleep(100);
        Application->ProcessMessages();
    }

OnTerminateイベントの発生を待てばよい。 

標準出力はConsoleOptionsにcoOwnerDataがあれば、ConsoleOutputにリダイレクトされ、
なければOnRawReadイベントかOnReadイベントで処理。

いままでCreateProcessを馬鹿正直に呼んでいたけど、あれはパイプやらリダイレクトが絡むと下ごしらえが面倒。
こりゃ、だいぶ楽になりそうだ。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
typodupeerror

※ただしPHPを除く -- あるAdmin

読み込み中...