programa autoactualizable

Post Reply
User avatar
José Luis Sánchez
Posts: 484
Joined: Thu Oct 13, 2005 9:23 am
Location: Novelda - Alicante - España
Contact:

programa autoactualizable

Post by José Luis Sánchez »

Hola:
Quiero añadir una funcionalidad a mis programas que permitan autoactualizarse via internet. Esto es, añadir una opción de menú para que el programa se conecte a un servidor web, y si hay alguna versión posterior del programa que se actualice. Tengo claro que lo primero es establecer una conexión via FTP con el sitio web, luego descargar el programa, pero no se como hacer el cambio de un ejecutable por otro.
Me gustaría saber si alguien ha hecho algo así.

Saludos,
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post by Antonio Linares »

regards, saludos

Antonio Linares
www.fivetechsoft.com
R.F.
Posts: 840
Joined: Thu Oct 13, 2005 7:05 pm

Re: programa autoactualizable

Post by R.F. »

José Luis Sánchez wrote:Hola:
Quiero añadir una funcionalidad a mis programas que permitan autoactualizarse via internet. Esto es, añadir una opción de menú para que el programa se conecte a un servidor web, y si hay alguna versión posterior del programa que se actualice. Tengo claro que lo primero es establecer una conexión via FTP con el sitio web, luego descargar el programa, pero no se como hacer el cambio de un ejecutable por otro.
Me gustaría saber si alguien ha hecho algo así.

Saludos,
Yo lo que hago usar la clase TURL incluida con xHarbour, funciona estupendamente para este tipo de casos:

Esta es la mecanica:

1) descargo de internet un fichero .INI que tengo puesto en la web, ese fichero .INI contiene en una de las entradas la ultima version del software:

oUrl := tURL():New("http://www.google.d2g.com/curver.inil" )
oClient := tIPClient():New( oUrl )
IF oClient:Open( oUrl )
oClient:ReadToFile( cIniFile2 )
oClient:Close()
ENDIF

Esto se puede hacer nada mas comenzar el programa.

2) Se comparan las versiones del programa, y si hay una version nueva, puedes volver a utilizar la clase TURL para descargarla via http, o bien utilizar un FTP para descargar, en mi caso lo hago via FTP con el componente Funcky FTP

3) Yo aconsejo que el programa "descargador" sea un EXE independiente de tu programa principal el cual puedes ejecutar con algo como esto:

IF MsgYesNO("hay una nueva version disponbile del programa, desea actualizar ?)
WINEXEC("decarga.exe")
ENDIF

4) Dentro de Descarga.EXE sigue el proceso que indica Antonio para "matar" el progrma original antes de descargar la actualizacion.
Saludos
R.F.
User avatar
José Luis Sánchez
Posts: 484
Joined: Thu Oct 13, 2005 9:23 am
Location: Novelda - Alicante - España
Contact:

Post by José Luis Sánchez »

Gracias a los dos. Voy a ir probando lo que me decis.

Saludos,
Post Reply