zoukankan      html  css  js  c++  java
  • delphi 调用外部exe ,并等待调用程序运行结束

    function TFmain.RunWait(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;

    调用

    procedure TFmain.Img_buyClick(Sender: TObject);
    var
    msg:String;
    begin

        Timer1.Enabled := False;

        RunWait('cs_buy.exe',SW_SHOWMAXIMIZED);

        Timer1.Enabled := True;

    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 激活并显示一个窗体。如果窗体为最大化或者最小化,窗体恢复到原始的大小和位置。当窗体第一次显示的时候,应用程序记录标记

  • 相关阅读:
    修复ecshop商品重量BUG小数位增至五位
    ECSHOP 支付宝发货确认接口,记录支付宝返回的交易号
    php数字补零的两种方法
    PHP获取当前时间的毫秒数(yyyyMMddHHmmssSSS)
    ajax 设置Access-Control-Allow-Origin实现跨域访问
    MySQL Master High Available 源码篇
    MHA 报错:There is no alive slave. We can't do failover
    cdid
    mha error
    mysql relay log参数汇总
  • 原文地址:https://www.cnblogs.com/yangxuming/p/7163328.html
Copyright © 2011-2022 走看看