Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Ejecutar un programa y esperar a que termine. (https://www.clubdelphi.com/foros/showthread.php?t=62109)

jplj 04-12-2008 12:12:27

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.

seoane 04-12-2008 14:31:44

Muchos de los programas de instalación al ejecutarlos descomprimen una serie de archivos, ejecutan alguno de los archivos que extrajo y luego se cierran dejando que el segundo ejecutable termine el trabajo. Me temo que vas a tener que buscar otra forma de controlar la desinstalación.

jplj 04-12-2008 14:54:53

Gracias.

Al menos ahora sé porqué no funciona :(

Aquí os dejo un enlace con algunas funciones similares por si pudieran servirle a alguien.


La franja horaria es GMT +2. Ahora son las 13:35:01.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi