zoukankan      html  css  js  c++  java
  • 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.

  • 相关阅读:
    计算机网络技术基础2
    java基础
    跨页传递参数或临时表的几种方法
    ASP.NET2.0文件上传以及图片处理总结篇 [转]
    正则表达式
    ASP.NET2.0中WEB应用程序的部署
    比较著名的.net技术论坛名称
    WordPress 插件开发实例 – 详细注释的 Widget 开发例子
    Java Applet签名验证
    Java Logging API Tutorial
  • 原文地址:https://www.cnblogs.com/chulia20002001/p/1836574.html
Copyright © 2011-2022 走看看