[APP & SOURCE] Smart Updater - Añade un auto-actualizador a tus programas FACIL

Iniciado por Mad Antrax, 15 Octubre 2013, 23:51 PM

0 Miembros y 1 Visitante están viendo este tema.

Mad Antrax

Bueno, tal y como prometí, os presento mi proyecto de Actualizador de Aplicaciones

El programa es muy básico pero cumple correctamente su función sin necesidad de complicar al usuario ni al programador. La herramienta está tan bien programada que no es necesario ni que accedáis al source del Smart Updater para implementar su función en tu aplicación.

Dada la propia naturaleza de Smart Updater, se puede utilizar como WebInstaller (es decir, un programa que descarga e instala desde 0 tu aplicación en un PC), así como para mantener siempre actualizados los ficheros del programa en cualquier equipo. Veamos como funciona:


Smart Updater solo necesita un fichero de configuración para que pueda encontrar el listado actualizado de los ficheros de tu programa, ese listado se llama updater.lst y estará colgado en la carpeta FTP/WEB junto a la copia de tu programa actualizado, para que se entienda os voy a poner un ejemplo práctico:

http://cactus-software.elhacker.net/EJEMPLO.zip

Descarga éste ejemplo de Smart Updater ya compilado, descomprime smart_updater.exe y smart.cfg en una misma carpeta. El contenido del smart.cfg es mi aplicación de ejemplo que será instalada/actualizada en tu PC:

Contenido del smart.cfg
http://cactus-software.elhacker.net/MyApp/

El contenido de cactus-software.elhacker.net/MyApp/ es el siguiente:

Se puede ver distintos ficheros y carpetas de ejemplo, además del mencionado updater.lst. Smart Updater buscará el fichero updater.lst y descargará/actualizará todos los ficheros que aparezcan listados.

Bueno, ahora ejecuta el fichero Smart_Updater.exe y pulsa el botón UPDATE, verás como la aplicación descarga el updater.lst, comprueba los ficheros locales y los ficheros del listado y si no coinciden lo descargan. Fácil, verdad?

Para generar un fichero updater.lst válido sobre cualquier carpeta o aplicación, solo tienes que descargar el siguiente programa: http://cactus-software.elhacker.net/Smart_Updater_Maker.zip

El programa es sencillo, lo ejecutas y seleccionas la carpeta de tu aplicación. El programa generará un updater.lst con el contenido de la carpeta (y subcarpetas) que has seleccionado. El fichero updater.lst se almacena al lado del Smart Updater Maker.exe, dicho fichero lo tienes que subir a tu FTP/WEB junto a la aplicación, tal y como se puede ver en la foto anterior de mi ejemplo.

El source de la aplicación también lo publico, pero no es necesario para añadirlo a una aplicación existente: http://cactus-software.elhacker.net/SmartUpdater_Engine.zip

======================================

Si alguien tiene dudas o preguntas... que pregunte!! No es fácil explicar el funcionamiento de éste programa de forma escrita, así que si hay dudas me avisáis :)
No hago hacks/cheats para juegos Online.
Tampoco ayudo a nadie a realizar hacks/cheats para juegos Online.

rapbyone

Excelente  ;-) sos un genio amigo, lo descargaré y probare, cualquier duda la comentó.

Un consulta el programa te avisa cuando hay una nueva versión o hay que comprobarlo manualmente?


Gracias amigo  ;D

Mad Antrax

Cita de: rapbyone en 16 Octubre 2013, 00:01 AM
Excelente  ;-) sos un genio amigo, lo descargaré y probare, cualquier duda la comentó.

Un consulta el programa te avisa cuando hay una nueva versión o hay que comprobarlo manualmente?


Gracias amigo  ;D

No te avisa. Aunque teniendo el código siempre puedes añadir esa opción tú mismo (no es complicado, si no sabes lo puedo implementar yo).

Para integrar Smart Updater en tu aplicación simplemente añade n botón que se llame actualizar y dentro pones:

Código (vb) [Seleccionar]

Shell "Smart_Updater.exe /auto"
End


De ésta forma ejecutarás el updater con el parámetro /auto y se auto-actualizará todo automáticamente. Si no añades el parametro /auto el usuario deberá pulsar el botón UPDATE manualmente.

Prueba el EJEMPLO.ZIP y dime si se descarga todo correctamente en tu PC
No hago hacks/cheats para juegos Online.
Tampoco ayudo a nadie a realizar hacks/cheats para juegos Online.

rapbyone

Amigo, intente bajar el Smart_Updater.exe y el source, pero están caídos los enlaces   :xD

Mad Antrax

Cita de: rapbyone en 16 Octubre 2013, 01:19 AM
Amigo, intente bajar el Smart_Updater.exe y el source, pero están caídos los enlaces   :xD

Fixed, ahora ya funcionan. El enlace de EJEMPLO.zip funciona correctamente, lo has podido probar?
No hago hacks/cheats para juegos Online.
Tampoco ayudo a nadie a realizar hacks/cheats para juegos Online.

rapbyone

Cita de: ||MadAntrax|| en 16 Octubre 2013, 01:32 AM
Fixed, ahora ya funcionan. El enlace de EJEMPLO.zip funciona correctamente, lo has podido probar?

Así es amigo, funciona perfecto, me actualizada los archivos y carpetas de la ruta señala, es hermoso  ;-) ahora probare con archivos y ruta mia


gracias amigo, cualquier cosa lo informo  :xD

rapbyone

Amigo habra alguna manera de agregar una barra de progreso a medida que se descargan los archivos? Si es mucho trabjo no te preocupes.

Funciona perfecto amigo :D

una pregunta hay algún limite de tamaño para actualizar los archivos?? pretendo que se actualicen unos 400mb


saludos

Mad Antrax

Cita de: rapbyone en 16 Octubre 2013, 04:39 AM
Amigo habra alguna manera de agregar una barra de progreso a medida que se descargan los archivos? Si es mucho trabjo no te preocupes.

Funciona perfecto amigo :D

una pregunta hay algún limite de tamaño para actualizar los archivos?? pretendo que se actualicen unos 400mb


saludos

Por la forma en que he programado el downloader no se puede agregar una barra de progreso. Lo que he añadido es un label que indica que fichero está descargando y cuando ha finalizado de descargar todos los ficheros. Se podría añadir una animación que indique al usuario que está descargando y que no desespere, así quedaría más bonito.

No hay ningún límite de descarga, si tienes que actualizar 400MB lo puedes hacer, lo mejor es que lo pruebes en tu PC primero. Smart Updater sirve tambien como FileIntegrityCheck. Si un fichero es borrado o modificado (aunque sea un bit) será actualizado por la comprobación CRC32, pruebalo y me cuentas :)
No hago hacks/cheats para juegos Online.
Tampoco ayudo a nadie a realizar hacks/cheats para juegos Online.

rapbyone

Amigo una ultima petición y no te fastidio mas  :-[ como tengo que hacerlo, para que aparezca el actualizador automáticamente, cuando haya una nueva versión??

Es decir que el programa se ejecute en segundo plano, verifique si hay actualización, si hay se lanza el mensaje de que hay nuevas actualizaciones y si no hay, que el actualizador se cierre y continué todo normal.

Si es mucho trabajo, no te preocupes, con lo que hiciste estoy muy contento  ;-)

Mad Antrax

Cita de: rapbyone en 17 Octubre 2013, 13:35 PM
Amigo una ultima petición y no te fastidio mas  :-[ como tengo que hacerlo, para que aparezca el actualizador automáticamente, cuando haya una nueva versión??

Es decir que el programa se ejecute en segundo plano, verifique si hay actualización, si hay se lanza el mensaje de que hay nuevas actualizaciones y si no hay, que el actualizador se cierre y continué todo normal.

Si es mucho trabajo, no te preocupes, con lo que hiciste estoy muy contento  ;-)
Hay que hacer algunas modificaciones, se me ocurre lo siguiente:

Subir a tu FTP un archivo llamado version.txt dentro del fichero poner por ejemplo 1.1
El ejecutable principal de tu programa tendrá almacenada su versión actual, por ejemplo 1.0. El programa descarga el fichero version.txt y compara el 1.1 con 1.0, al ser distintos lanza un mensaje para que se active el lanzador. Te lo voy a escribir en pseudo-codigo:

Código (vb) [Seleccionar]

Sub Main()
MyVersion = "1.0"
FTP_Version = DownloadFile("version.txt")
If MyVersion <> FTP_Version Then
  If MsgBox "Hay una nueva version, deseas actualizar?" = vbYes Then
   Shell "smartupdater.exe /auto"
   End
  End If
End Sub


Sería eso a groso modo, evidentemente tienes que codearlo bien, con su sintaxis y todo. De todas fromas (sin acritud) desconozco ese "proyecto" importante que estás haciendo, pero si no eres capaz ni de programar una función similar... significa que no debe ser un "proyecto importante" como dices xD

He leído varios posts tuyos y tienes dudas de nivel-1. No quieras empezar una casa por el tejado :D
No hago hacks/cheats para juegos Online.
Tampoco ayudo a nadie a realizar hacks/cheats para juegos Online.