首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在我的Delphi控制台应用程序中运行控制台应用程序?

如何在我的Delphi控制台应用程序中运行控制台应用程序?
EN

Stack Overflow用户
提问于 2018-08-24 04:03:29
回答 1查看 2.3K关注 0票数 2

我希望我的控制台应用程序启动另一个控制台应用程序,显示该应用程序想要显示的所有内容,然后在该应用程序完成并退出后执行某些操作。基本上:

代码语言:javascript
复制
Writeln('Started');
ShellExecute(0, 'open', 'another.exe', nil, nil, SW_SHOWNORMAL);
Writeln('Finished');

那么,如何在我的控制台应用程序中显示来自另一个控制台应用程序的所有输出呢?我不想捕获来自另一个应用程序的输出。我只想让另一个应用程序在同一个命令行窗口中执行。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-08-24 04:21:35

您可能想要尝试这样的操作:

代码语言:javascript
复制
program Project1;

{$APPTYPE CONSOLE}

{$R *.res}

uses
  Windows, SysUtils;

var
  cl: string;
  SI: TStartupInfo;
  PI: TProcessInformation;

begin

  cl := 'C:\WINDOWS\System32\ping.exe 127.0.0.1';
  UniqueString(cl);

  try
    try
      writeln('begin');
      FillChar(SI, sizeof(SI), 0);
      FillChar(PI, sizeof(PI), 0);
      SI.cb := sizeof(SI);

      if not CreateProcess(nil, PChar(cl), nil, nil, true, 0, nil, nil, SI, PI) then
        RaiseLastOSError;

      WaitForSingleObject(PI.hProcess, INFINITE);

      CloseHandle(PI.hProcess);
      CloseHandle(PI.hThread);

      writeln('end');
    except
      on E: Exception do
        Writeln(E.ClassName, ': ', E.Message);
    end;
  finally
    Writeln('Complete');
    Readln;
  end;


end.
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51993496

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档