Ver Mensaje Individual
  #1  
Antiguo 04-12-2008
jplj jplj is offline
Miembro
 
Registrado: oct 2003
Posts: 189
Reputación: 21
jplj Va por buen camino
Ejecutar un programa y esperar a que termine.

Hola:

Es un tema recurrente en el foro, pero que no me acaba de funcionar correctamente:
Código Delphi [-]

procedure TForm2.Button2Click(Sender: TObject);
function ExecuteProcess(ProcessName: String): Cardinal; var StartInfo: TStartupInfo; ProcInfo: TProcessInformation; begin Result := 0; FillChar(StartInfo, SizeOf(StartInfo), 0); StartInfo.cb := SizeOf(StartInfo); if CreateProcess( PChar(ProcessName), nil, nil, nil, false, 0, nil, nil, StartInfo, ProcInfo) then Result := ProcInfo.hProcess; end;
var Process, i: Cardinal; begin Application.Minimize; Process := ExecuteProcess(prog_7Zip.unistall); if Process <> 0 then
WaitForSingleObject(Process, INFINITE);
Application.Restore; end;

Lo que pretendo es que el programa principal espere minimizado hasta que el usuario finalice con el que se iniciado.
Lo que me ocurre es que se minimiza el programa, se lanza el desintalador pero inmediatamente se restarura el programa principal. En este ejemplo se trata de llamar al desintalador de 7-Zip, pero me sucede no sólo con él.

También he probado con el truco 168 con el mismo resultado.

Trabajo con XP y Delphi 7 / Borland Developer Estudio 2006

Muchas gracias de antemano.
__________________
Sonríe. Mañana puede ser peor.
Responder Con Cita