• delphi执行一个外部程序,当外部程序结束后,delphi程序立即响应


    procedure TForm1.Button1Click(Sender: TObject);  
    var  
      SEInfo: TShellExecuteInfo;  
      ExitCode: DWORD;  
      ExecuteFile, ParamString, StartInString: string;  
    begin  
      ExecuteFile := 'c:\Windows\system32\Calc.exe';  
      FillChar(SEInfo, SizeOf(SEInfo), #0);  
      SEInfo.cbSize := SizeOf(TShellExecuteInfo);  
      with SEInfo do begin  
        fMask := SEE_MASK_NOCLOSEPROCESS;  
        Wnd := Application.Handle;  
        lpFile := PChar(ExecuteFile);  
        //ParamString can contain the application parameters  
    //    lpParameters := PChar(ParamString);  
        //StartInString specifies the name of the working directory.if ommited, the current directory is used.  
    //    lpDirectory := PChar(StartInString);  
        nShow := SW_SHOWNORMAL;  
      end;  
      if ShellExecuteEx(@SEInfo) then  
      begin  
        repeat  
          Application.ProcessMessages;  
          GetExitCodeProcess(SEInfo.hProcess, ExitCode);  
          if ExitCode = STILL_ACTIVE then Sleep(500);  
        until (ExitCode <> STILL_ACTIVE) or Application.Terminated;  
        ShowMessage('Calculator terminated');  
      end  
      else  
        ShowMessage('Error starting Calc!');  
    end;  
  • 相关阅读:
    高仿中国银行ATM系统
    第二次冲刺2
    第二轮冲刺1
    本日进度7
    本日进度6
    本日进度5
    本日进度4
    本日进度3
    本日进度2
    本日进度
  • 原文地址:https://www.cnblogs.com/railgunman/p/1889730.html
Copyright © 2020-2023  润新知