• Delphi技巧集六 (等待执行完一个外部程序再执行另一个程序)


    http://www.cnblogs.com/kylskjb/archive/2008/08/10/1264799.html

    unit Unit1;

    interface

    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls;

    type
      TForm1 = class(TForm)
        Button1: TButton;
        procedure Button1Click(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;

    var
      Form1: TForm1;

    implementation

    uses ShellAPI;  //注意

    {$R *.dfm}

    function ExecAppWait(AppName, Params: string): Boolean;
    var
      ShellExInfo: TShellExecuteInfo;
    begin
      FillChar(ShellExInfo, SizeOf(ShellExInfo), 0);
      with ShellExInfo do begin
        cbSize := SizeOf(ShellExInfo);
        fMask := see_Mask_NoCloseProcess;
        Wnd := Application.Handle;
        lpFile := PChar(AppName);
        lpParameters := PChar(Params);
        nShow := sw_ShowNormal;
      end;
      Result := ShellExecuteEx(@ShellExInfo);
      if Result then
        while WaitForSingleObject(ShellExInfo.HProcess, 100) = WAIT_TIMEOUT do
        begin
          Application.ProcessMessages;
          if Application.Terminated then Break;
        end;
    end;

    procedure TForm1.Button1Click(Sender: TObject);
    const    { 连续运行下面这四个EXE文件 }
      EXEFILES : array[1..4] of string =
                 ('calc.exe', 'mspaint.exe', 'Notepad.exe', 'wordpad.exe');
    var
      Success: Boolean;
      InstanceID: THandle;
      I : integer;
    begin
      for I := Low(EXEFILES) to High(EXEFILES) do
        begin
        Application.Minimize;
        Success := False;
        try
           Success := ExecAppWait(EXEFILES[I], '')
        finally
          Application.Restore;
          if not Success then
            ShowMessage(Format('Application %d failed: %s', [ I, EXEFILES[I] ]));
        end;
      end;
    end;

    end.

  • 相关阅读:
    2018-2019-2 20175310 个人项目总结报告
    2018-2019-2 20175310 个人项目报告5--勾股数
    2018-2019-2 20175310 个人项目报告6--四方定理
    2018-2019-2 20175310 个人项目报告7--尼科彻斯定理
    #2019-2020-4 《Java 程序设计》第十周总结
    数据库MySQL(20175229张智敏)
    #实验三 敏捷开发与XP实践---实验报告
    课下必做MyCP
    #2019-2020-4 《Java 程序设计》第九周总结
    #2019-2020-4 《Java 程序设计》第八周总结
  • 原文地址:https://www.cnblogs.com/chulia20002001/p/1836574.html
Copyright © 2020-2023  润新知