Ver Mensaje Individual
  #4  
Antiguo 12-04-2008
Avatar de Black_Ocean
Black_Ocean Black_Ocean is offline
Miembro
 
Registrado: nov 2006
Posts: 128
Reputación: 20
Black_Ocean Va por buen camino
Hola [Caral],

Mira, lo que podrías hacer es que utilizar un sistema de descarga de parches en línea para actualizar versiones de ej: 1.0 (version base) a versiones 1.0.x.x (mínimos arreglos y no grandes avances), podrías realizar parches de ejecutables muy facilmente con la herramienta dUP2 . Lo que hace este programa es comparar el ejecutable instalado (original) con el nuevo ejecutable y reemplaza intrucciones en assembler del ejecutable con las diferencias con tan sólo un clic, en vez de estar dandote el trabajo de empaquetar el ejecutable y crear el instalador cada vez que requiera de una pequeña actualización.

Lo siguiente, es que te descargues el componente gratuito que se llama HTTPGet para crear un sistema de descarga desde una carpeta que tengas en tu sitio online con los ficheros de actualización hasta el PC destino. Para verificar las nuevas versiones en línea, podrías crear un fichero .XML en la carpeta de tu sitio y descargarla cuando el actualizador sea ejecutado para comparar la versión del ejecutable con la actual información de actualizaciones contenidas en el fichero .XML. El componente gratuito Version Information Component (32 bit) permite obtener información interna de la versión del ejecutable.

Lo que preguntabas acerca de cómo lanzar el actualizador y cerrar la aplicación para actualizarla te propongo lo siguiente:

En el evento OnDestroy del programa ejecutar el Actualizador externo y cuando haga esto, que cierre o mate el proceso principal del programa, luego el actualizador externo que hayas hecho se encargará de actualizar y ESPERAR a que la actualización finalice, es decir, después de la descarga del parche, instación, cambios de archivo, etc lance automáticamente el programa. Con Try... Finally se puede controlar bastante bien esto y controlando el hilo de la ejecución (con CreateProcess). Entonces tienes que generar una rutina en el evento OnClose para que cierre el programa actualizador y lance el programa principal.

Bueno, si no quieres utilizar parches, utiliza instaladores en silencio (silence updates installations). Para crear instaladores bastante buenos y modernos, te recomiendo Inno Setup + ISTool (IDE para el instalador de Inno Setup)

Como ves, un básico sistema actualizador, pero funcional

Por ahí va la idea, No ocupes otros componentes para que veas lo entretenido que es hacerlo a mano, es más largo pero es entretenido y se aprenden otras cosas.

Saludos y espero que de algo te sirva este pequeño grano de arena

Última edición por Black_Ocean fecha: 12-04-2008 a las 00:45:22.
Responder Con Cita