Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Como hacer un desintaldor y lanzarlo previo a mi instalación?

Estas en el tema de Como hacer un desintaldor y lanzarlo previo a mi instalación? en el foro de Visual Basic clásico en Foros del Web. Saludos nuevamente estimados Gurus del VB. Ahora estoy con la siguiente cuestion: Resulta que tengo mi aplicacion en un Instalable Setup.Exe, en donde trabajo anteriormente ...
  #1 (permalink)  
Antiguo 19/07/2006, 17:09
Avatar de onlykfk  
Fecha de Ingreso: agosto-2005
Ubicación: 20°45' Latitud Norte 100°
Mensajes: 121
Antigüedad: 18 años, 8 meses
Puntos: 1
Como hacer un desintaldor y lanzarlo previo a mi instalación?

Saludos nuevamente estimados Gurus del VB.

Ahora estoy con la siguiente cuestion:
Resulta que tengo mi aplicacion en un Instalable Setup.Exe, en donde trabajo anteriormente habia la misma aplicacion pero usabamos Flexgrid y en algunos Sistemas operativos del cliente. (Win 95 y otros) no lo aceptaba al 100% por lo cual tuvimos que reemplazarle con el Hierarchical Flexgrid. Bien, hicimos nuestro empaquetado nuevamente, VB hace su rollo y todo eso.

Pero resulta que el usuario al reinstalar la nueva version no leia los mensajes del sistema relacionados a las versiones de las dll's y ocx's que se estaban instalando, es decir que algunas ya existian, que eran anteriores a las instaladas y demas mensajes, ke lo que hacia es ke la aplicacion finalmente instalada, confundia algunos controles y utilizaba los que no fueron sobre-escritos (o sobreescribidos???). Lo que me sugieren ahora es lo siguiente:

Antes de lanzar el Setup.exe, realizar una verificacion de que si existe una version, ya sea anterior o identica de la aplicacion, la desinstale antes de lanzar el instalador(que ya tengo y trabaja bien) y de esta manera al usuario le sea transparente la actualizacion, es decir, el solo ejecute su setup pero este primero realizara la desinstalacion de previas versiones y posteriormente lanzar el setup original que por cierto ya esta hecho y funciona bien.

Alguien me puede decir si es esto posible y si de paso sabe como hacerlo me pasaria el tip.

De Antemano gracias, Espero que halla sido claro en mi tema.

Saludos
__________________
Yo tan sólo se, que no he senado
  #2 (permalink)  
Antiguo 20/07/2006, 10:18
Avatar de Jad-Neo  
Fecha de Ingreso: octubre-2004
Mensajes: 344
Antigüedad: 19 años, 6 meses
Puntos: 0
Mira, yo tengo una idea de lo que puedes hacer. Primero tendrías que crear un EXE Estandar en VB, en el cual vas a hacer toda la comprobación de los archivos. Lo que no se es si tu programa escribe en el registro o crea archivos INI, porque esa sería tu referencia para saber si el programa está instalado.

Otra cosa que tendría que saber es si todas tus versiones son acompañadas con su debido desinstalador. Yo me imagino que si.

Aparte tendrías que comprobar si el exe principal y la carpeta de instalación del programa existe y como tu explicaste, verificar si el programa instalado es una versión anterior; si es así proceder a desinstalar dicha versión por medio de su desinstalador (generalmente en el mismo directorio). En caso contrario, si en una versión anterior simplemente se ejecutaria el Setup.exe del programa actualizado.
Si se diera el caso de que es la misma, sólo aparecería un mensaje preguntando si se quiere reinstalar.

Eso sí, nada más tendrías que cambiar el nombre del Setup principal a otro (por ejemplo: Alt_Setup) y nombrar a la aplicación que te dije el SETUP. Para que de esa manera dicho exe haga las comprobaciones y ejecute el instalador.
__________________
Nunca seas sabio en tu propia opinión.

Última edición por Jad-Neo; 20/07/2006 a las 10:26
  #3 (permalink)  
Antiguo 20/07/2006, 16:59
Avatar de onlykfk  
Fecha de Ingreso: agosto-2005
Ubicación: 20°45' Latitud Norte 100°
Mensajes: 121
Antigüedad: 18 años, 8 meses
Puntos: 1
Pues ve, El programa incluye en su instalacion un archivo .ini con la configuracion de algunos dsn's basicos. El sistema al estar en constantes modificaciones lo que hace es lo siguiente (esto por que estamos desarrollando en un ambiente de pruebas y al liberarlo trabaja sobre ambiente de produccion):

Al Arrancar el exe, verifica si existe un archivo .ini con un nombre en especifico

Si existe, lo lee, lo valida y registra la configuracion en el registro de Windows y borra dicho .ini (No se kien dio esa idea por aka pero ya kedo asi y asi lo quieren ya.. )

Eso solo ocurrira la primera vez ke se ejecute la aplicacion en el cliente.
De lo contrario continua su ejecucion normal tomando los datos siempre del Registro de güindos (Windows).

Ahora bien, utilizando el empaquetador de VB descubri ke el setup instala un archivo con el nombre ST6UNST.LOG en la misma direccion donde instala el exe, que contiene informacion que es utilizada si nos vamos a "Panel de control\Agregar o quitar programas\MiPrograma y Pulsamos el boton de quitar o desinstalar"
Encontre tambien que para leer este archivo se ejecuta un exe llamado ST6UNST.EXE (Casualidad???). Bueno pues el caso este programita ejecutado por si solo manda un mensaje como este:


Pero... encontre que si lo ejecutamos con algunos parametros hace lo mismo que irnos a Panel de Control\Blah\Blah...

La linea del comando quedo asi:
> St6unst.exe -n "%ProgramFiles%\MiProgramaFolder\St6unst.log" -f -q Donde por lo que lei, el parametro -f Forza la desinstalacion de la aplicacion y -q lo hace en modo silencioso, es decir el usuario ni enterado (que es lo ke mas me interesaba ya que como comprenderas el usuario no es muy afecto a leer los mensajes de Windows y segun sus "temores" o "prisas" por alguna extraña razon, a todos les pulsa ya sea "Cancelar", "Aceptar", "SI" o "No" pero nunca lee lo que dicen, aunque en algunos de ellos diga "La aplicacion procede a formatear su disco duro. Confirme por favor"... no lo lee, pulsa aceptar y despues anda preguntando "¿Por que me aparece que falta SO en mi pc? ")

Dicho todo esto, la solucion que halle fue:

Hacer un exe sencillo con la instruccion de que borre previas versiones instaladas y con ayuda de la informacion del siguiente link: http://www.forosdelweb.com/showpost....&postcount=125 hago la ejecucion de la linea antes mencionada utilizando un shell con vb y bueno, una vez ke termino de desintalar lo previo y terminar, lanzo ahora si mi setup de mi aplicacion.

¿Como ves?, Sugieres algo mejor? Ves muy estilo apache mi solucion o ke opinas?
__________________
Yo tan sólo se, que no he senado
  #4 (permalink)  
Antiguo 21/07/2006, 09:26
Avatar de Jad-Neo  
Fecha de Ingreso: octubre-2004
Mensajes: 344
Antigüedad: 19 años, 6 meses
Puntos: 0
Esta bien. Sólo agregale unas funcionalidades más como las que te mesione en mi post anterior, porque es necesario verificarlas.

Aparte de que sería un instalador más completo darías la oportunidad al usuario de reinstalar en caso dado de que sea la misma versión (valga la redundacia)que se quiera instalar. Pero en teoria esta bien.
__________________
Nunca seas sabio en tu propia opinión.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:36.