如何让Delphi调用外部程序并等待其

 我来答
就烦条0o
2017-05-06 · 知道合伙人软件行家
就烦条0o
知道合伙人软件行家
采纳数:33315 获赞数:46496
从事多年系统运维,喜欢编写各种小程序和脚本。

向TA提问 私信TA
展开全部
    uses  
        Windows,  
        SysUtils,  
        Classes,  
        ShellAPI;  
    function RunAndWait(FileName: string; Visibility: Integer): THandle;  
    var  
        zAppName: array[0..512] of Char;  
        zCurDir: array[0..255] of Char;  
        WorkDir: string;  
        StartupInfo: TStartupInfo;  
        ProcessInfo: TProcessInformation;  
    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;
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式