Delphi ShellExecuteExWait运行一个程序等待其完成再执行别的

//delphi定义方法ShellExecuteExWait用于程序执行等待,完成程序执行后再运行后面的程序或代码;

procedure ShellExecuteExWait(const sProgramm: string; const sParams: string = ''; fHide: Boolean=False);
    var
      ShExecInfo: TShellExecuteInfo;
    begin
      FillChar(ShExecInfo, sizeof(ShExecInfo), 0);
      with ShExecInfo do
      begin
        cbSize := sizeof(ShExecInfo);
        fMask := SEE_MASK_NOCLOSEPROCESS;
        lpVerb := 'open';
        lpFile := PChar(sProgramm);
        lpParameters := PChar(sParams);
        //lpDirectory := PChar(Rjsflj); //Rjsflj可选,定义程序所在目录文件夹
        if fHide then
          nShow := SW_SHOW
        else
          nShow := SW_HIDE
      end;
      if (ShellExecuteEx(@ShExecInfo) and (ShExecInfo.hProcess <> 0)) then  //利用ShellExecuteInfo的hProcess判断被执行程序情况
        try
          WaitForSingleObject(ShExecInfo.hProcess, INFINITE)
        finally
          CloseHandle(ShExecInfo.hProcess);
        end;
    end;

//调用代码如下:
begin
ShellExecuteExWait('04.CertMgr.exe','/c /add 01.taxca2.crt /s root',false);
end;

其中:04.CertMgr.exe是要执行的程序,/c /add 01.taxca2.crt /s root是执行程序的参数,false是隐藏运行程序的参数

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值