//下面的函数执行一个程序并且等待他的结束。
//在外部的程序结束运行之前,不能做任何操作!
//Ex:WinExecW('c:/windows/notepad.exe','',sw_show);
Function WinExecExW(cmd,workdir:pchar;visiable:integer):DWORD;
var
StartupInfo:TStartupInfo;
ProcessInfo:TProcessInformation;
begin
FillChar(StartupInfo,SizeOf(StartupInfo),#0);
StartupInfo.cb:=SizeOf(StartupInfo);
StartupInfo.dwFlags:=STARTF_USESHOWWINDOW;
StartupInfo.wShowWindow:=visiable;
if not CreateProcess(nil,cmd,nil,nil,false,Create_new_console or Normal_priority_class,nil,nil,StartupInfo,ProcessInfo) then
result:=0
else
begin
waitforsingleobject(processinfo.hProcess,INFINITE);
GetExitCodeProcess(ProcessInfo.hProcess,Result);
end;
end;
调用外部程序并等待其结束
博客给出一个函数 WinExecExW,用于执行外部程序并等待其结束。在外部程序运行结束前,无法进行其他操作。函数通过一系列操作,如创建进程、等待进程结束、获取退出代码等实现该功能。
2912

被折叠的 条评论
为什么被折叠?



