programa autoactualizable

programa autoactualizable

Postby José Luis Sánchez » Mon Feb 12, 2007 7:59 am

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
José Luis Sánchez
 
Posts: 556
Joined: Thu Oct 13, 2005 9:23 am
Location: Novelda - Alicante - España

Postby Antonio Linares » Mon Feb 12, 2007 8:57 am

regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42150
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: programa autoactualizable

Postby R.F. » Mon Feb 12, 2007 8:47 pm

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.
R.F.
 
Posts: 840
Joined: Thu Oct 13, 2005 7:05 pm

Postby José Luis Sánchez » Wed Feb 14, 2007 6:56 am

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

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


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 37 guests