首页 > 代码库 > delphi中等待外部应用程序执行完成后,再继续执行自有代码段
delphi中等待外部应用程序执行完成后,再继续执行自有代码段
下面是两个函数,用来执行一个外部程序,缺省是异步执行
同步调用方法 RunProgram(‘c:\aa.exe‘,true);
参考IsProgram_Runing函数,你也可以调用RunProgram(‘c:\aa.exe‘)先异步执行,然后根据返回的进程句柄,自己判断程序是否执行结束。
// 异步执行
function RunProgram(ProgramName:string;Wait:Boolean=False):Cardinal;
var
StartInfo:STARTUPINFO;
ProcessInfo:PROCESS_INFORMATION;
begin
//执行外部程序,失败返回0,成功返回进程句柄
Result:=0;
if ProgramName=‘‘ then exit;
GetStartupInfo(StartInfo);
StartInfo.dwFlags:=StartInfo.dwFlags or STARTF_FORCEONFEEDBACK;
if not CreateProcess(nil,PChar(ProgramName),nil,nil,false,0,
nil,nil,StartInfo,ProcessInfo) then exit;
Result:=ProcessInfo.hProcess;
//建立进程成功
//如果异步执行则退出
if not wait then exit;
while IsProgram_Runing(Result) do Application.ProcessMessages;
end;
// 同步执行
function IsProgram_Runing(hProcess:Cardinal):Boolean;
var
ExitCode:Cardinal;
begin
//查看进程是否正在运行
GetExitCodeProcess(hProcess,ExitCode);
Result := ExitCode=STILL_ACTIVE
end;
delphi中等待外部应用程序执行完成后,再继续执行自有代码段
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。