CreateProcessで起動させたアプリの標準出力の内容をテキストボックス表示するには?


るる  2004-03-03 04:24:54  No: 7499

CreateProcess でperlを起動させています。
Perlの出力内容をテキストボックスに表示させたいんですけど、
アプリケーション上で標準出力の内容を取得する方法がわかりません。

すごく初心者なので恥ずかしいのですが、ご参考までにソースを記述します。↓
なにかおかしい所がありましたら、ご指摘頂けると有り難いです。
----------------------------------  
begin
  Button2.Enabled:=False;
  // 外部アプリ、表示状態を設定-------------
  with StartupInfo do begin
    // 構造体のサイズを指定
    cb := SizeOf(TStartupInfo);
    // ウィンドウの位置を指定
    dwX := 0;
    dwY := 0;
    // ウィンドウのサイズを指定
    dwXSize := 640;
    dwYSize := 480;
    // ウィンドウの表示状態を指定
    wShowWindow := SW_SHOWNORMAL;
    // 有効な設定項目を指定
    dwFlags := STARTF_USESHOWWINDOW
      or STARTF_USESIZE or STARTF_USEPOSITION;
    // それ以外の項目を初期化
    lpDesktop  := nil;
    lpReserved := nil;
    lpTitle    := nil;
    cbReserved2 := 0;
    lpReserved2 := nil;

  end;
  // 外部アプリを起動------------------------
  s := 'C:\perl2\sample2.exe';
  ret := CreateProcess(
    nil,PChar(s),nil,nil,False,CREATE_DEFAULT_ERROR_MODE,
    nil,'C:\perl2\',StartupInfo,ProcessInfo);

  if ret then
  begin
    // このループで外部アプリが終了するまで待つ
    while WaitForSingleObject(ProcessInfo.hProcess, 0) = WAIT_TIMEOUT do
    begin
      Application.ProcessMessages;
    end;

    exit;
    CloseHandle(ProcessInfo.hProcess);
    CloseHandle(ProcessInfo.hThread);
  end
  else
  begin
    ShowMessage('プログラムが起動できません。');

  end;
----------------------------------  

logに同じような質問があったのですが、回答にあったURLが消えてたので。。
宜しくお願いします。


にしの  2004-03-03 06:16:54  No: 7500

ここが参考になるかと。
http://forum.nifty.com/fdelphi/samples/01397.html


シグマ  2004-03-03 08:00:43  No: 7501

http://maxxdelphisite.free.fr/
ここのサイトのDosCommandコンポーネントをつかえば良いかと思います。
高性能なコンポーネントです


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加