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を馬鹿正直に呼んでいたけど、あれはパイプやらリダイレクトが絡むと下ごしらえが面倒。
こりゃ、だいぶ楽になりそうだ。
覚え書き:TJvCreateProcessの使い方 More ログイン