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
