Qué métodos puedo usar para actualizar una versión anterior de un software vía internet,espero su ayuda gracias de antemano.

¿Sistema de actualización online en delphi para actualizar aplicación?
Comenzado por
Master23
, jul 28 2010 08:42
7 respuestas en este tema
#1
Escrito 28 julio 2010 - 08:42
#2
Escrito 29 julio 2010 - 04:21
Buenas,
Lo que yo hacía era colocar en un servidor FTP la nueva versión junto a un documento de texto que contenía el número de la versión ahí depositada.
Por otro lado, en el PC no ejecutaba nunca la aplicación directamente, sino una aplicación lanzadera la cual no tenía ventanas, simplemente se conectaba al servidor FTP, se bajaba el ficherito de texto (de ahí lo de un fichero de texto, para que la descarga fuera casi instantánea), comprobaba la versión y, en caso de que fuera más nueva la de internet, la descargaba (preguntando o no, ya es a gustos), la instalaba y arrancaba la aplicación.
Si no había conexión a internet o el usuario no quería actualizar, simplemente arrancaba la aplicación.
Nos leemos
Lo que yo hacía era colocar en un servidor FTP la nueva versión junto a un documento de texto que contenía el número de la versión ahí depositada.
Por otro lado, en el PC no ejecutaba nunca la aplicación directamente, sino una aplicación lanzadera la cual no tenía ventanas, simplemente se conectaba al servidor FTP, se bajaba el ficherito de texto (de ahí lo de un fichero de texto, para que la descarga fuera casi instantánea), comprobaba la versión y, en caso de que fuera más nueva la de internet, la descargaba (preguntando o no, ya es a gustos), la instalaba y arrancaba la aplicación.
Si no había conexión a internet o el usuario no quería actualizar, simplemente arrancaba la aplicación.
Nos leemos
#3
Escrito 29 julio 2010 - 04:44
Puedes echarle un vistazo a esto:
http://delphi.jmrds.com/?q=node/46
Es un poco difícil de configurar, pero por lo menos te dará una idea de como hacerlo
http://delphi.jmrds.com/?q=node/46
Es un poco difícil de configurar, pero por lo menos te dará una idea de como hacerlo
#4
Escrito 29 julio 2010 - 06:03
Muy buen aporte Maestro.
Gracias
Gracias
#5
Escrito 04 junio 2013 - 10:44
Con respecto al link de seaone, agradecido. Lo adapte perfectamente a mi aplicacion, ahora para que el usuario tenga una idea de lo que el programa esta haciendo, quisiera agregarle una barra de progreso. Le agregue un boton actualizar, donde cree el md5, y me baja perfectamente el archivo desde el servidor, como el archivo que deseo actualizar pesa aprox. 25 megas, estoy viendo adaptarle una barra de progreso pero no doy en el clavo.
#6
Escrito 04 junio 2013 - 08:43
#7
Escrito 04 junio 2013 - 09:41
Esta es la funcion bajar, donde quiero añadir una barra de progreso para que el usuario vea que el archivo se esta bajando e ir mostrandole el porcentaje que lleva. Pero no se por donde encararla. Tengo el codigo de ejemplo de una barra de progreso donde un archivo se copia de un lugar a otro y ahi se calcula el tamaño origen y destino de lo que se va copiando. En esta funcion seria algo parecido solo que el origen es un archivo de internet.
delphi
function Bajar(Url: String; Archivo: String): Boolean; var hFile: THandle; hNet: HInternet; hUrl: HInternet; Buffer: array[0..10240] of Char; BytesRead: DWord; BytesWritten: DWord; begin Result := False; hFile := CreateFile(PChar(Archivo), GENERIC_WRITE, 0, nil, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0); if (hFile <> INVALID_HANDLE_VALUE) then begin hNet := InternetOpen('actualizar', INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0); if (hNet <> nil) then begin hUrl := InternetOpenUrl(hNet, PChar(Url), nil, 0, INTERNET_FLAG_RELOAD, 0); if (hUrl <> nil) then begin while (InternetReadFile(hUrl, @Buffer, SizeOf(Buffer), BytesRead)) do begin Application.ProcessMessages; if (BytesRead = 0) then begin Result := True; Break; end; if (not WriteFile(hFile, Buffer, BytesRead, BytesWritten, nil)) then Break; if (BytesRead <> BytesWritten) then Break; end; InternetCloseHandle(hUrl); end; InternetCloseHandle(hNet); end; CloseHandle(hFile); end; end;
#8
Escrito 05 junio 2013 - 05:13
Esto me interesa...
Voy a analizar bien lo que se planteó aquí. Tengo varios sistemas con este problemita de la actualización constante.
Santiago.
Voy a analizar bien lo que se planteó aquí. Tengo varios sistemas con este problemita de la actualización constante.
Santiago.