- uses
- Windows,
- SysUtils,
- Classes,
- ShellAPI;
- function RunAndWait(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;
Delphi 调用外部程序并等待其运行结束
最新推荐文章于 2017-09-20 18:19:28 发布