Ver Mensaje Individual
  #3  
Antiguo 26-11-2013
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Reputación: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Seguramente existan mil formas de hacerlo. Personalmente, me apaño bien con el componente "IdHttp" de Indy. Lo que hago es que guardo en un servidor de internet (en el mismo dominio y web que el programa en cuestión, pero, podría ser otro) un simple archivo de texto que contiene información sobre la última versión disponible. El archivo de texto tiene además un doble uso, pues también lo utilizo en la propia web del programa para mostrar dicha información.

Así que, básicamente, se trata de hacer lo siguiente:

1º Hago una petición HTTP GET a dicho archivo de texto y compruebo en base a la versión instalada si existe una nueva versión. Yo únicamente me baso en la fecha, esto es, el programa instalado tendrá una fecha, y, si esta es anterior a la que muestra el archivo TXT mencionado, entonces es que puedo proceder con el siguiente paso.

2º Si existe una nueva versión del programa, simplemente, le dejo al usuario la oportunidad de descargarla y para esto uso el mismo componente "IdHttp". Como distribuyo mis programas con sus correspondientes asistentes de instalación, lo que en realidad se descarga es un asistente de instalación que incluye la última versión del programa.

3º Una vez descargado el instalador de la última versión doy al usuario la opción de ejecutarlo, para lo que, sin complicarme demasiado, cierro el programa en ese momento, eso es, justo después de ejecutar el instalador. A este último le indico (mediante la línea de comandos) que se está ejecutando "para actualizar".

4º Y eso es todo. El programa instalador instala el programa previa desinstalación de la versión anterior, y, al terminar, como sabe que ha sido ejecutado "para actualizar", ejecuta a su vez el programa recién instalado, habiendo concluido el proceso de actualización.

Por si sirve de algo diré que para crear instaladores uso Inno Setup. Y para terminar diré que, en efecto, todo esto puede complicarse lo que se quiera, pero, básicamente, se trata de averiguar si existen actualizaciones ("IdHttp") y de descargarlas a continuación (con el mismo componente).
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita