Delphi写的等待进程运行结束函数

procedure TForm1.Button1Click(Sender: TObject);

var

sCommandLine: string;

bCreateProcess: boolean;

lpStartupInfo: TStartupInfo;

lpProcessInformation: TProcessInformation;

begin

sCommandLine := 'C:\TEST.EXE';

//初始化StartupInfo

FillChar(lpStartupInfo, Sizeof(TStartupInfo), #0);

lpStartupInfo.cb := Sizeof(TStartupInfo);

lpStartupInfo.dwFlags := STARTF_USESHOWWINDOW;

lpStartupInfo.wShowWindow := SW_NORMAL;

bCreateProcess := CreateProcess(nil, PChar(sCommandLine),

nil, nil, True, CREATE_NEW_CONSOLE or NORMAL_PRIORITY_CLASS,

nil, nil, lpStartupInfo, lpProcessInformation);

if bCreateProcess then //等外部进程的结束

WaitForSingleObject(lpProcessInformation.hProcess, INFINITE);

end;