博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
delphi调用外部程序并等待其运行结束
阅读量:6941 次
发布时间:2019-06-27

本文共 1356 字,大约阅读时间需要 4 分钟。

uses
 
    Windows,
 
    SysUtils,
 
    Classes,
 
    ShellAPI;
 
function RunWait(FileName: string; Visibility: Integer): THandle;
 
var
 
    zAppName: array[0..512] of Char;
 
    zCurDir: array[0..255] of Char;
 
    WorkDir: string;
 
    StartupInf TStartupInfo;
 
    ProcessInf TProcessInform ation;
 
begin
 
    try
 
      StrPCopy(zAppName, FileName);
 
      GetDir(0, WorkDir);
 
      StrPCopy(zCurDir, WorkDir);
 
      FillChar(StartupInfo, SizeOf(StartupInfo), #0);
 
      StartupInfo.cb := SizeOf(StartupInfo);
 
      StartupInfo.dwFlags := STARTF_USESHOWWINDOW;
 
      StartupInfo.wShowWindow := Visibility;
 
      if not CreateProcess(nil, zAppName, nil, nil, false, Create_NEW_CONSOLE or NORMAL_PRIORITY_CLASS, nil, nil, StartupInfo, ProcessInfo) then
 
      begin
 
        result := 0;
 
        Exit;
 
      end
 
      else
 
      begin
 
        WaitForSingleObject(ProcessInfo.hProcess, INFINITE);
 
        GetExitCodeProcess(ProcessInfo.hProcess, result);
 
      end;
 
    finally
 
    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 激活并显示一个窗体。如果窗体为最大化或者最小化,窗体恢复到原始的大小和位置。当窗体第一次显示的时候,应用程序记录标记。

转载于:https://www.cnblogs.com/kaibosoft/p/4039179.html

你可能感兴趣的文章
Binary Search--二分查找
查看>>
《计算机图形学》2.1.6 三维观察设备 学习笔记
查看>>
QT在线
查看>>
以P2P网贷为例互联网金融产品如何利用大数据做风控?
查看>>
Polymer初探
查看>>
zprofiler三板斧解决cpu占用率过高问题(转载)
查看>>
深入浅出NIO Socket实现机制
查看>>
bzoj 1930: [Shoi2003]pacman 吃豆豆 [费用流]
查看>>
(数字IC)低功耗设计入门(三)——系统与架构级低功耗设计
查看>>
Dynamics CRM2016 新功能之从CRM APP中导出数据至EXCEL
查看>>
Android——推断Service是否已经启动
查看>>
subprocess模块
查看>>
大数据入门基础系列之初步认识大数据生态系统圈(博主推荐)
查看>>
linux下命令行的查找顺序
查看>>
基于HTML5 Canvas 点击添加 2D 3D 机柜模型
查看>>
详述 SQL 中的 distinct 和 row_number() over() 的区别及用法
查看>>
xshell 登陆堡垒机实现自动跳转
查看>>
Hexo-设置阅读全文
查看>>
实模式与保护模式
查看>>
分布式ID生成器解决方案
查看>>