Ver Mensaje Individual
  #5  
Antiguo 30-11-2012
PacoPepe PacoPepe is offline
Miembro
 
Registrado: ene 2006
Ubicación: Córdoba, España
Posts: 86
Reputación: 19
PacoPepe Va por buen camino
Quiero decir que al usar la función
Código Delphi [-]
function EjecutarPrograma(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_HIDE;
  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;

En la parte final,

Código Delphi [-]
 if Esperar then
    while WaitForSingleObject(ProcInfo.hProcess,100)=Wait_TimeOut do
    begin
      Application.ProcessMessages;
      if Application.Terminated then Break;
    end;

Al entrar al While no espera a que termine el Restore. Lo digo porque al hacerlo con el .bat, el restore tarda unos segundos, y con el While acaba de forma inmediata

Un saludo
Responder Con Cita