Bueno, tal y como prometí, os presento mi proyecto de
Actualizador de AplicacionesEl 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:
(http://i.imgur.com/m3cLV9D.png)
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.cfghttp://cactus-software.elhacker.net/MyApp/
El contenido de
cactus-software.elhacker.net/MyApp/ es el siguiente:
(http://i.imgur.com/MICqbA0.png)
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 :)
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
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:
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
Amigo, intente bajar el Smart_Updater.exe y el source, pero están caídos los enlaces :xD
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?
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
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
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 :)
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 ;-)
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:
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
Cita de: ||MadAntrax|| en 17 Octubre 2013, 14:24 PM
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:
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
jajaj pero a pesar de ser muy novato, he logrado un programa que cumple a cabalidad algunas fusiones :D ha tenido una buena acogida.
El problema, es que todo lo he aprendido por ensayo y error, pero aun no aprendo la sintaxis, por ende mis dudas básicas.
Mi objetivo es aprender a programar en vb6, pero necesito el programa a corto plazo :D gracias por la ayuda, intentare agregarlo a mi programa
Una ultima inquietud :-[
esto lo comprendo perfectamente
Shell "Smart_Updater.exe /auto"
End
pero como podría abrir el "Smart_Updater.exe" si este se encuentra un nivel antes que mi programa
Supongamos que el programa "Smart_Updater.exe" se encuentra en:
C:\Archivos de programa\Launcher\Smart_Updater.exe
y mi programa se encuentra en:
C:\Archivos de programa\Launcher\Val\Miprograma.exe
pero sin tener que especificar un ruta, por que la ruta del programa, puede ir variando en cada pc
Espero hacerme entender
Alguien tiene los ejemplos y el proyecto del source de este programa??
Todos los links del post, estan caidos.
Gracias, Madantrax!
Cita de: NWitheir73 en 3 Septiembre 2014, 00:58 AM
Alguien tiene los ejemplos y el proyecto del source de este programa??
Todos los links del post, estan caidos.
Gracias, Madantrax!
Cierto, el hosting lo cerré. Mañana lo subo todo a MediaFire, ok? Un saludo y disculpas
Con respecto a un autoupdater, lo que yo haría es lo siguiente:
dentro de un .ini, .txt o algo así y luego:
PathArchivoServer:PathArchivoCliente:hash/md5/etc
ej: \Host\mapas.mps:\Juego\Mapas\mapas.mps:m81asd823hf12 (blabla)
Así no tendría que ver por versiones, sinó por el archivo actualizado :D, éste es mi parecer pero es solo un ejemplo de como yo lo pensaría, saludos!
Cita de: Mad Antrax en 3 Septiembre 2014, 15:26 PM
Cierto, el hosting lo cerré. Mañana lo subo todo a MediaFire, ok? Un saludo y disculpas
Ok, me gustaria verlo esperare por el link de mediafire ;D Gracias de nuevo, Madantrax :)
lei y me parecio interesante, a ver si aprendemos aun mas con ejemplos de gente experimentada :)
a esperar ese linkk.
gracias!
Mad, me serviria de mucho si resubes esta obra de arte... :rolleyes:
Aquí está el link: https://www.mediafire.com/?q7gm3pfee7qfj8z
Todo un capo mad, gracias. ;D
Tengo una duda, en que parte del codigo agrego el link a mi servidor para que descargue el archivo de configuracion?
Cita de: arley12 en 23 Noviembre 2014, 06:11 AM
Tengo una duda, en que parte del codigo agrego el link a mi servidor para que descargue el archivo de configuracion?
Eso los haces con el Updater Maker.exe,
Cita de: arley12 en 23 Noviembre 2014, 06:11 AM
Tengo una duda, en que parte del codigo agrego el link a mi servidor para que descargue el archivo de configuracion?
Exacto, el cource no lo necesitas, compila los 2 programas "tal cual", con el maker generas el fichero de configuración que subirás al server y al lado del updater dejarás el smart.cfg que contiene la URL para descargar el fichero generado por el maker.
Ya entedi, muchas gracias
Ojalá les sirve a muchos!!
Alguien conoce realmente el porque no descarga nada el programa sabiendo que ya se tiene alojado el updater.lst en el servidor web asi como el archivo a querer descargar o verificar actualizado.
Cuando ejecuto Smart_Updater con el smart.cfg me dice que ya está actualizado.... muy raro o hay algún paso que falta?
Espero alguna respuesta o guia del mismo.
El problema radica al traer un .exe de menos de 2 mb, a alguien le sucede lo mismo?
Cita de: zetaperu en 15 Mayo 2015, 22:04 PM
El problema radica al traer un .exe de menos de 2 mb, a alguien le sucede lo mismo?
Ummm, postea aqui tu cfg para intentar descargar yo el programa. Es posible que se trate de un fallo de conexión?
Hola,
Adjunto el cfg https://drive.google.com/file/d/0ByU-xvsqeTCFVGtpTTFkYUh6Y2s/view?usp=sharing (https://drive.google.com/file/d/0ByU-xvsqeTCFVGtpTTFkYUh6Y2s/view?usp=sharing)
Cita de: zetaperu en 15 Mayo 2015, 23:22 PM
Hola,
Adjunto el cfg https://drive.google.com/file/d/0ByU-xvsqeTCFVGtpTTFkYUh6Y2s/view?usp=sharing (https://drive.google.com/file/d/0ByU-xvsqeTCFVGtpTTFkYUh6Y2s/view?usp=sharing)
Ya he visto el fallo:
El fichero CFG apunta correctamente a tu servidor, en ese servidor está el updater.lst
El error está en que el updater.lst está mal generado, su contenido es:
SIFAC.zip
414766
$C63F3333
Y el en servidor no existe ese fichero, existe un tal SIFAC.exe
Te recomiendo que utilices el "maker" para generar un updater.lst con los datos correctos de tus ficheros :)
Saludos
Sigue lo mismo, sin poder descargarlo
Genere de nuevo el updater.lst para el .exe y nada, sigue igual como lo comente al inicio, espero puedas darme una posible pista de lo que pueda estar sucediendo.
Cita de: zetaperu en 16 Mayo 2015, 06:10 AM
Genere de nuevo el updater.lst para el .exe y nada, sigue igual como lo comente al inicio, espero puedas darme una posible pista de lo que pueda estar sucediendo.
Has subido mal el fichero EXE en la web, si te fijas, no se puede descargar ni accediendo por la URL en firefox o chrome:
http://acpsoluciones.web44.net/actualizaciones/SIFAC.exe
Revisa los permisos :D
Los permisos públicos en el servidor los he vuelto a revisar y todos estan habilitados
¿Has podido alojar algún .exe en algun servidor y el programa ha podido descargarlo?
Cita de: zetaperu en 16 Mayo 2015, 18:43 PM
Los permisos públicos en el servidor los he vuelto a revisar y todos estan habilitados
¿Has podido alojar algún .exe en algun servidor y el programa ha podido descargarlo?
Creo que te estás liando o yo no me estoy explicando bien...
El EXE que has alojado en tu FTP está mal, corrupto o hay algñun tipo de problema, ya que no se puede descargar... Si intentas acceder al EXE pinchando en un link normal (URL) tampoco se descarga, por eso motivo el updater tampoco puede descargar tu exe.
Revisa todo de nuevo, asegurate que pinchando en la URL de tu exe se pueda descargar, entonces verás que el updater también podrá.
Un saludo
Volvi a generar el exe y lo subi, ejecute el SmartUpdater_Maker y envie dicho archivo al servidor, revise nuevamente los permisos y nada....
Pero como sucedio antes, zippie dicho archivo y si lo descarga pero un exe solo NO
¿Tendrá que ver el hosting algo?
Intentaré subirlo a otro hosting y veremos lo que pasa.