FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour programa autoactualizable
Posts: 564
Joined: Thu Oct 13, 2005 09:23 AM
programa autoactualizable
Posted: Mon Feb 12, 2007 07: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,

Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
programa autoactualizable
Posted: Mon Feb 12, 2007 08:57 AM
regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 840
Joined: Thu Oct 13, 2005 07:05 PM
Re: programa autoactualizable
Posted: Mon Feb 12, 2007 08: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.
Posts: 564
Joined: Thu Oct 13, 2005 09:23 AM
programa autoactualizable
Posted: Wed Feb 14, 2007 06:56 AM

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

Saludos,

Continue the discussion