Hola
Prueba este a ver si te sirve
Código:
function Ejecutar(Programa:String;Esperar:Boolean=True):Boolean;
var ProcInfo:TProcessInformation;
Info:TStartupInfo;
begin
FillChar(Info,SizeOF(Info),0);
Info.cb:=SizeOf(Info);
Info.dwFlags:=STARTF_USESHOWWINDOW;
Info.wShowWindow:=SW_SHOWNORMAL;
Result:=CreateProcess(nil,PChar(Programa),nil,nil,False,0,nil,nil,Info,ProcInfo);
if Esperar then
while WaitForSingleObject(ProcInfo.hProcess,100)=Wait_TimeOut do
begin
Application.ProcessMessages;
if Application.Terminated then Break;
end;
end;
Funciona de este modo
Código:
Ejecutar('C:\Carpeta\Programa.exe',true); // True esperar a que termine el programa
Espero te sirva
Saludos