Delphi 调用外部程序并等待其运行结束


本文整理自网络,侵删。

 
如何让Delphi调用外部程序并等待其运行结束
function WinExecAndWait32(FileName: string; Visibility: Boolean): integer;
var
  zAppName: array[0..512] of char; //存放应用程序名
  StartupInfo: TStartupInfo;
  ProcessInfo: TProcessInformation;
  exitCode: Dword;
  aVisibility: integer;
begin

  StrPCopy(zAppName, FileName);
  FillChar(StartupInfo, Sizeof(StartupInfo), #0);
  //给StartupInfo结构体赋值
  StartupInfo.cb := Sizeof(StartupInfo);
  StartupInfo.dwFlags := STARTF_USESHOWWINDOW;
  if Visibility then
    aVisibility := 1
  else
    aVisibility := 0;

  StartupInfo.wShowWindow := aVisibility;
  //调用CreateProcess 创建进程,执行指定的可执行文件
  if not CreateProcess(nil, zAppName, nil, nil, false
    , CREATE_NEW_CONSOLE or NORMAL_PRIORITY_CLASS
    , nil, nil, StartupInfo, ProcessInfo) then
    Result := -1
  else
  begin

    //等待可执行文件退出
    WaitforSingleObject(ProcessInfo.hProcess, INFINITE);
    //得到进程终止状态码
    GetExitCodeProcess(ProcessInfo.hProcess, exitCode);
    result := Exitcode;
  end;
end;


其中 参数   Visibility 取值如下:

行号 参数 含义
1 SW_HIDE                        隐藏这个窗体,并激活其他窗体。
2 SW_MAXIMIZE                最大化指定的窗体。
3 SW_MINIMIZE                 最小化指定的窗体,并按顺序激活最上层的窗体。
4 SW_RESTORE               激活并显示窗体。如果窗体为最小化或者最大化,窗体恢复到原始大
                                          小和置。应用程序当恢复一个最小化的窗体时将指定标记。
5 SW_SHOW                      以当前的大小和位置激活并显示窗体。
6 SW_SHOWDEFAULT
7 SW_SHOWMAXIMIZED    激活并最大化显示窗体。
8 SW_SHOWMINIMIZED     激活并最小化现实窗体。
9 SW_SHOWMINNOACTIVE    最小化窗体,保持其激活状态。
10 SW_SHOWNA                     以当前状态显示窗体,保持其激活状态。
11 SW_SHOWNOACTIVATE   以当前的大小和位置显示窗体,并保持其激活状态。
12 SW_SHOWNORMAL 激活并显示一个窗体。如果窗体为最大化或者最小化,窗体恢复到原始的大小和位置。当窗体第一次显示的时候,应用程序记录标记。

相关阅读 >>

Delphi listview 与数据库连接

Delphi xe android]获取屏幕的物理分辨率

Delphi 十进制十六进制转换

Delphi 的字符串在 firemonkey 模式下

Delphi xe10 文件目录/路径操作 (andorid、ios、windows)

Delphi中dataset和json的互转

Delphi 10.4 自定义托管记录

Delphi 使用firedac的tfdscript组件执行文件中描述的sql语句

Delphi在64位系统下读写注册表

Delphi调用百度语音识别服务

更多相关阅读请进入《Delphi》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...