PDA

Ver la Versión Completa : Actualizador de mi aplicacion via ftp


ramflores
25-04-2011, 16:19:00
Buen día Foro.

Saben de un software o componente el cual pueda usar para hacer actualizaciones de una aplicación vía ftp o http, tipo el Clickone de VS2005?

Gracias de antemano.

Neftali [Germán.Estévez]
26-04-2011, 13:02:17
Si haces una búsqueda en los foros, encontrarás bastantes hilos al respecto. Es un tema que hemos hablado otras veces y sobre el que han salido soluciones.
En los mismos hilos encontrarás código útil.
Recuerdo una programa de Seoane que creo que también puedes encontrar en el FTP del Club (http://www.terawiki.clubdelphi.com/).
Allí mismo hay alguno más.
En la sección de componentes (http://www.terawiki.clubdelphi.com/Delphi/Componentes-Funciones/__MaxComponents__/), están los de Max, que también incluyen uno para actualización vía web.

ramflores
26-04-2011, 14:57:32
Muchas gracias por tu respuesta, buscare la información

Gracias de antemno

fide_uci
17-05-2011, 23:08:27
Yo he hecho cosas similares a eso usando idHTTPClient con el metodo Get. Le paso la url del paquete o los paquetes y luego hago lo que quiera con ellos.

ramflores
17-05-2011, 23:12:03
Gracias fide_uci por contestar.

Tienes algún ejemplo sencillo en el cual me pueda basar?, como reemplazarías el ejecutable actual por la nueva versión si esta en ejecución?

Gracias de antemano ;)

fide_uci
17-05-2011, 23:19:35
Si claro. Aca te dejo algo del codigo que tienes que utilizar.

Esto esta probado con Delphi 7 e Indy 10.

var
vUpdatePacket: TMemoryStream;
begin

//Creando el stream para guardar el contenido
vUpdatePacket := TMemoryStream.Create;

try
//Obteniendo el fichero desde la pagina donde se encuentra
IdHTTP1.Get('http://mydominio.com/updates/miApplication.exe', vUpdatePacket);

//Llevando el puntero de escritura/lectura al inicio del stream
vUpdatePacket.Seek(0, soFromBeginning);

vUpdatePacket.SaveToFile('update_aplicacion.exe');
finally
vUpdatePacket.Free;
end;


Ahora una cosa. Generalmente cuando los programas actualizan ellos llaman a un programa actualizador que esta en la misma carpeta que es quien cierra al que esta habierto, baja la actualizacion y la reemplaza por el programa viejo y acto seguido ejecuta nuevamente el programa. Esta seria una buena opcion.

ramflores
18-05-2011, 00:32:49
Ok, muchas gracias por el codigo, voy a echarle un vistazo y a probarlo, en cuanto lo tenga te aviso.

Gracias por tu apoyo;)

ramflores
18-05-2011, 00:33:50
Perdon, esto se tiene que hacer por cada archivo que se vaya a bajar, cierto?

fide_uci
18-05-2011, 01:04:43
Aja. Mira generalmente se pone un archivo con la lista de archivitos a bajar.


Archivo1.exe
Archivo2.dll
Archivo3.txt


Entonces el programa que hace la actualizacion lo primero que baja es esa lista y de ahi baja todos los archivitos que esten en ellas entiendes?

fide_uci
18-05-2011, 01:05:25
Otra posibilidad es que metas todo en un .zip o .rar y luego con algun componente descomprimas y ya tengas todo de un solo golpe.

ramflores
18-05-2011, 14:59:45
Perfecto, ya tengo una mejor idea.

muchas gracias, deja empezar hacer las pruebas, y te comento como me va

Gracias de antemano
;)

rretamar
18-05-2011, 15:15:32
El paquete de componentes libres JEDI tiene unos que sirven para implementar un sistema de actualizaciones automáticas, entre muchas (muchísimas) otras cosas casi imprescindibles para todo desarrollador de Delphi.

ramflores
18-05-2011, 15:18:30
Muchas gracias por tu respuesta.

Donde puedo bajar esos componentes?
Alguna guía de como se usa el componente que mencionas?

Gracias de antemano
;)

elguille
18-05-2011, 15:41:24
Tambien esta esto, yo la empleo y va perfectamente....

http://www.terawiki.clubdelphi.com/archivos/Delphi/Componentes-Funciones/FUNCION_PARA_ACTUALIZAR_VIA_HTTP.zip

ramflores
18-05-2011, 15:44:08
Gracias elguille.

Algún ejemplo de donde me pueda guiar de como usarlo?

Gracias de antemano
;)