Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 04-04-2006
crievep crievep is offline
Miembro
 
Registrado: feb 2006
Ubicación: Bucaramanga, Colombia
Posts: 21
Poder: 0
crievep Va por buen camino
Question uso de WaitForSingleObject para hacer un instalador

Hola:
Estoy haciendo un instalador que debe ejecutar otros .EXEs, lo hago de la siguiente forma pero no espera hasta terminar la instalacion del primer exe, estos ejecutables son instaladores, y deseo que despues de presionar el boton: 'Terminar' continue la instalacion del otro, pero en realidad no se detiene:

Código Delphi [-]
// primer exe
 
    ruta := Pchar(ExtractFileDir(Application.ExeName) + '\Instaladores\Primer.exe');
    ExecInfo.cbSize := SizeOf(ExecInfo);
    ExecInfo.fMask := SEE_MASK_NOCLOSEPROCESS;
    ExecInfo.Wnd := 0;
    ExecInfo.lpVerb := 'open';
    ExecInfo.lpFile := ruta;
    ExecInfo.lpParameters := nil;
    ExecInfo.lpDirectory := nil;
    ExecInfo.nShow := SW_NORMAL;
    ShellExecuteEx(@ExecInfo);
    WaitForSingleObject(ExecInfo.hProcess, INFINITE); 
   
// segundo.exe

    ruta := Pchar(ExtractFileDir(Application.ExeName) + '\Instaladores\Segundo.exe');
    ExecInfo.cbSize := SizeOf(ExecInfo);
    ExecInfo.fMask := SEE_MASK_NOCLOSEPROCESS;
    ExecInfo.Wnd := 0;
    ExecInfo.lpVerb := 'open';
    ExecInfo.lpFile := ruta;
    ExecInfo.lpParameters := nil;
    ExecInfo.lpDirectory := nil;
    ExecInfo.nShow := SW_NORMAL;
    ShellExecuteEx(@ExecInfo);
    WaitForSingleObject(ExecInfo.hProcess, INFINITE);

De antemano gracias por la posible ayuda y correciones necesarias para solucionar esto

Última edición por dec fecha: 04-04-2006 a las 21:32:17.
Responder Con Cita
  #2  
Antiguo 04-04-2006
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Creo que deberías hacer algo parecido a esto:

Código Delphi [-]
  repeat
    salida := WaitForSingleObject(ExecInfo.hProcess, 500);
    Application.ProcessMessages;
  until (salida <> WAIT_TIMEOUT);
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #3  
Antiguo 04-04-2006
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Poder: 24
seoane Va por buen camino
Probe tu codigo y me funciona. El programa se detiene hasta que cierro el primer ejecutable y entonces se ejecuta el segundo.

Has dicho que se trata de instaladores, algunos instaladores al ejecutarse descomprimen los datos a un directorio temporal y luego ejecutan el verdadero instalador que se encontraba comprimido, cerrandose ellos mismos.

Es decir, el ejecutable que tu abres se cierra, pero el que abrio el sigue ejecutandose. Puede que ese sea el problema.
Responder Con Cita
  #4  
Antiguo 04-04-2006
crievep crievep is offline
Miembro
 
Registrado: feb 2006
Ubicación: Bucaramanga, Colombia
Posts: 21
Poder: 0
crievep Va por buen camino
Thumbs up Seguro es eso

Realmente el primer instalador es mysql4.1.exe, sera que debo tratar con el instalador mysql.msi? aunque no sabría como hacerlo. es decir como ejecutarlo, sera igual que con el exe?, si alguien sabe gracias

Muchas gracias por sus respuestas
Responder Con Cita
  #5  
Antiguo 05-04-2006
andres andres is offline
Miembro
 
Registrado: jul 2003
Ubicación: cali- colombia
Posts: 15
Poder: 0
andres Va por buen camino
hola,

no se cuales son las intenciones al realizar el instalador tu mismo, y espero que mi apunte no se salga del objetivo que persigues; por que no usas el sistema de instalacion de Nulsoft, es muy bueno, este es el que utiliza winamp, google, yahoo, Sun java web start, alcohol, ATI, Divx, entre otros, funciona con scripts y es libre, no tienes que preocuparte por la licencia para distribución.
Responder Con Cita
  #6  
Antiguo 05-04-2006
gastelumri gastelumri is offline
Miembro
 
Registrado: oct 2004
Posts: 20
Poder: 0
gastelumri Va por buen camino
tambien...

Se ve muy bueno el que recomienda Andres (en una y lo pruebo) y tambien esta Inno Setup, es gratuito y con mucho soporte y utilidades de terceros, puedes utilizar dlls y pascal scripts

Saludos!!
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
¿cómo Hacer Un Instalador? nax C++ Builder 2 06-01-2006 02:37:45
cómo hacer instalador o similar? Dantael OOP 8 13-11-2004 17:42:42
Hacer Instalador..... :( LucasArgentino Varios 1 14-11-2003 15:01:13
como hacer un instalador elpezfuma OOP 1 15-07-2003 10:06:51
librerias necesarias para hacer un instalador de Qreports tango01 Impresión 1 20-06-2003 15:36:12


La franja horaria es GMT +2. Ahora son las 04:39:13.


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
Copyright 1996-2007 Club Delphi