elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Tutorial básico de Quickjs


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  [ SRC ] Actualizador de Aplicaciones
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 2 3 [4] Ir Abajo Respuesta Imprimir
Autor Tema: [ SRC ] Actualizador de Aplicaciones  (Leído 18,551 veces)
Mad Antrax
Colaborador
***
Desconectado Desconectado

Mensajes: 2.166


Cheats y Trainers para todos!


Ver Perfil WWW
Re: [ SRC ] Actualizador de Aplicaciones
« Respuesta #30 en: 14 Octubre 2013, 23:02 pm »

jajaj lo siento amigo  ;D es que es para un proyecto muy importante, la idea es que pueda actualizar archivos y carpetas, ya tengo mi programa, pero seria muy útil que al  abrir el programa, le avisara al usuario que hay una nueva versión y que actualizara los archivos.

Muchas gracias amigo,  ;-)

Bueno ya lo tengo terminado (ahora solo falta el diseño, ventanas, control de errores, mensajes al usuario, etc.... Pero la "base" ya está funcionando perfectamente. Además, dada la naturaleza del propio updater, también sirve como Web-Installer; es decir, que el propio actualizador se podría utilizar como instalador del programa. El funcionamiento es muy sencillo:

El programador genera una lista que incluye el nombre de los ficheros de su APP, su tamaño en bytes y su hash CRC32. Dicha lista se almacena en la web/ftp. El updater descarga esa lista y efectua 3 comparaciones:

Si existe el fichero del listado en el equipo -> Si no existe lo descarga
Si el fichero en local tiene los mismos bytes que el fichero remoto -> Si no coincide lo descarga
Si el fichero en local tiene un CRC32 distinto al fichero remoto -> si no coincide lo descarga.

Además permite auto-actualizar el modulo principal de tu APP, incluso si está en ejecución. Y si añadimos un fichero llamado whatsnew.txt, lo descarga y lo ejecuta para que el user vea los cambios de tus actualizaciones. Tambien el programa permite el parámetro /auto, para lanzar la auto-actualización de golpe

Bueno, lo dicho, voy a terminar de trabajar el diseño y abre un hilo nuevo :)


« Última modificación: 14 Octubre 2013, 23:08 pm por ||MadAntrax|| » En línea

No hago hacks/cheats para juegos Online.
Tampoco ayudo a nadie a realizar hacks/cheats para juegos Online.
rapbyone

Desconectado Desconectado

Mensajes: 173


Ver Perfil
Re: [ SRC ] Actualizador de Aplicaciones
« Respuesta #31 en: 15 Octubre 2013, 00:37 am »

Bueno ya lo tengo terminado (ahora solo falta el diseño, ventanas, control de errores, mensajes al usuario, etc.... Pero la "base" ya está funcionando perfectamente. Además, dada la naturaleza del propio updater, también sirve como Web-Installer; es decir, que el propio actualizador se podría utilizar como instalador del programa. El funcionamiento es muy sencillo:

El programador genera una lista que incluye el nombre de los ficheros de su APP, su tamaño en bytes y su hash CRC32. Dicha lista se almacena en la web/ftp. El updater descarga esa lista y efectua 3 comparaciones:

Si existe el fichero del listado en el equipo -> Si no existe lo descarga
Si el fichero en local tiene los mismos bytes que el fichero remoto -> Si no coincide lo descarga
Si el fichero en local tiene un CRC32 distinto al fichero remoto -> si no coincide lo descarga.

Además permite auto-actualizar el modulo principal de tu APP, incluso si está en ejecución. Y si añadimos un fichero llamado whatsnew.txt, lo descarga y lo ejecuta para que el user vea los cambios de tus actualizaciones. Tambien el programa permite el parámetro /auto, para lanzar la auto-actualización de golpe

Bueno, lo dicho, voy a terminar de trabajar el diseño y abre un hilo nuevo :)

Excelente amigo, muchas gracias :D


En línea

Mad Antrax
Colaborador
***
Desconectado Desconectado

Mensajes: 2.166


Cheats y Trainers para todos!


Ver Perfil WWW
Re: [ SRC ] Actualizador de Aplicaciones
« Respuesta #32 en: 15 Octubre 2013, 01:01 am »

Excelente amigo, muchas gracias :D

Bueno, por hoy ya he terminado, te explico hasta donde he llegado:

Tengo finalizado el programa para generar automáticamente el updater.lst, básicamente tú le indicas la carpeta donde tienes instalado el programa actualizado y te genera un fichero con el siguiente contenido:

Código:
vb6.jpg
151089
$7764735F
whatsnew.txt
51
$54FF24BD
windowslogo.png
151053
$A07BF49A
fotos\executable.jpg
94423
$F7F46B42
fotos\foto_linux.jpeg
81570
$A2963B48
hola\virusfoto.jpg
114480
$3B9600A0

No tienes que editarlo a mano, ya que el programa te lo calcula automáticamente, aparece el fichero y su ruta, tamaño y el CRC32, con esas 3 datos ya funciona correctamente el updater.

Y luego, el programa (actualizador principal) funciona d ela siguiente manera; se descarga el updater.lst y lee el fichero de 3 en 3 líneas, en cada lectura obtiene el fichero, tamaño y CRC, los compara con el fichero local y si uno de los 3 datos no es correcto, descarga la copia del fichero en remoto (el fichero actualizado). Si el fichero está dentro de una carpeta, también crea la carpeta y actualiza los ficheros de su interior.

** Por el momento el programa trabaja con los ficheros de la raíz y un 1º nivel de sub-carpeta, mañana cuando vuelva del trabajo hago un bucle recursivo para que pueda ir desde el nivel 2 de sub-carpeta hasta el nivel N (infinito).

El programa acepta el parámetro /auto para que auto-actualice y si descarga el fichero whatsnew.txt lo ejecuta y lo muestra al usuario para que vea los cambios actualizados.

El programa sirve como WebInstaller o Actualizador, puede actualizar incluso si la aplicación principal está en ejecución. Cosas que me faltan terminar?

- Nivel N-Subcarpeta (mañana lo termino)
- Posibilidad de auto-actualizar el propio instalador. (No se hasta que punto es interesante implementar la opción...)

El código es "bonito", corto y sencillo. Como a mi me gustan, es el siguiente:

Código
  1. Function StartUpdate()
  2.    Dim RootPath As String
  3.    Dim WhatsNew As Boolean
  4.  
  5.    Set Files = CreateObject("Scripting.FileSystemObject")
  6.    WhatsNew = False
  7.    m_CRC.Algorithm = 1
  8.  
  9.    Open App.Path & "\smart.cfg" For Input As #1
  10.        Line Input #1, RootPath
  11.    Close #1
  12.    DoEvents
  13.  
  14.    If DownloadFile(RootPath & "updater.lst", "updater.lst") = False Then
  15.        MsgBox "Error al descargar el fichero de actualización"
  16.    Else
  17.        Open App.Path & "\updater.lst" For Input As #1
  18.            Do While Not EOF(1)
  19.                Line Input #1, Archivo
  20.                Line Input #1, Bytes
  21.                Line Input #1, CRC
  22.                Label1.Caption = Archivo & " (" & Bytes & ") = " & CRC
  23.                If Files.FileExists(App.Path & "\" & Archivo) Then
  24.                    If FileLen(App.Path & "\" & Archivo) = Bytes Then
  25.                        CRC2 = "$" & Hex(m_CRC.CalculateFile(App.Path & "\" & Archivo))
  26.                        If CRC <> CRC2 Then
  27.                            Call DownloadFile(RootPath & Archivo, Archivo)
  28.                            If Archivo = "whatsnew.txt" Then WhatsNew = True
  29.                        End If
  30.                    Else
  31.                        Call DownloadFile(RootPath & Archivo, Archivo)
  32.                        If Archivo = "whatsnew.txt" Then WhatsNew = True
  33.                    End If
  34.                Else
  35.                    Call DownloadFile(RootPath & Archivo, Archivo)
  36.                    If Archivo = "whatsnew.txt" Then WhatsNew = True
  37.                End If
  38.                DoEvents
  39.            Loop
  40.        Close #1
  41.        DoEvents
  42.        Kill App.Path & "\updater.lst"
  43.        If WhatsNew = True Then ShellExecuteA 0&, "Open", App.Path & "\whatsnew.txt", vbNullString, vbNullString, 1
  44.    End If
  45. End Function
  46.  
  47. Function DownloadFile(ByVal URL As String, ByVal Target As String) As Boolean
  48.    On Error GoTo dError
  49.  
  50.    Set oHTTP = CreateObject("WinHttp.WinHttpRequest.5.1")
  51.    Set oStream = CreateObject("ADODB.Stream")
  52.  
  53.    URL = Replace(URL, "\", "/")
  54.    oHTTP.Open "GET", URL, False
  55.    oHTTP.Send
  56.  
  57.    If (oHTTP.Status = 200) Then
  58.        oStream.Open
  59.        oStream.Type = 1
  60.        oStream.Write oHTTP.ResponseBody
  61.        If InStr(Target, "\") > 0 And Target <> "updater.lst" Then
  62.            Call MkDir(Split(Target, "\")(0))
  63.        End If
  64.        oStream.SaveToFile App.Path & "\" & Target, 2
  65.        oStream.Close
  66.        DownloadFile = True
  67.        Exit Function
  68.    End If
  69. dError:
  70.    DownloadFile = False
  71. End Function
  72.  

Por cierto, como has pensado en pagarme el trabajo que estoy haciendo? Yo no programo gratis... te mando un MP informando de mis precios por horas.

Saludos y hasta mañana! :D
En línea

No hago hacks/cheats para juegos Online.
Tampoco ayudo a nadie a realizar hacks/cheats para juegos Online.
rapbyone

Desconectado Desconectado

Mensajes: 173


Ver Perfil
Re: [ SRC ] Actualizador de Aplicaciones
« Respuesta #33 en: 15 Octubre 2013, 02:43 am »

 :huh: no me dijiste que cobrabas :( pequeño detalle, lo siento amigo, pero no tengo los medios para pagarte, disculpa las molestias
En línea

Mad Antrax
Colaborador
***
Desconectado Desconectado

Mensajes: 2.166


Cheats y Trainers para todos!


Ver Perfil WWW
Re: [ SRC ] Actualizador de Aplicaciones
« Respuesta #34 en: 15 Octubre 2013, 10:46 am »

:huh: no me dijiste que cobrabas :( pequeño detalle, lo siento amigo, pero no tengo los medios para pagarte, disculpa las molestias

jajjaa, era broma hombre!! Has picado de lleno.

Yo no cobro por programar. A la tarde cuando llegue a casa termino el programa y lo subo ok? No te preocupes.
En línea

No hago hacks/cheats para juegos Online.
Tampoco ayudo a nadie a realizar hacks/cheats para juegos Online.
rapbyone

Desconectado Desconectado

Mensajes: 173


Ver Perfil
Re: [ SRC ] Actualizador de Aplicaciones
« Respuesta #35 en: 15 Octubre 2013, 13:13 pm »

jajjaa, era broma hombre!! Has picado de lleno.

Yo no cobro por programar. A la tarde cuando llegue a casa termino el programa y lo subo ok? No te preocupes.

me asustaste  ;) muchas gracias amigo  ;-)
En línea

Mad Antrax
Colaborador
***
Desconectado Desconectado

Mensajes: 2.166


Cheats y Trainers para todos!


Ver Perfil WWW
Re: [ SRC ] Actualizador de Aplicaciones
« Respuesta #36 en: 15 Octubre 2013, 23:21 pm »

Bueno, ya lo tengo terminado. Voy a crear un nuevo hilo para publicar mi código. Dejaré colgado aquí el link para que lo veas
En línea

No hago hacks/cheats para juegos Online.
Tampoco ayudo a nadie a realizar hacks/cheats para juegos Online.
rapbyone

Desconectado Desconectado

Mensajes: 173


Ver Perfil
Re: [ SRC ] Actualizador de Aplicaciones
« Respuesta #37 en: 15 Octubre 2013, 23:29 pm »

Bueno, ya lo tengo terminado. Voy a crear un nuevo hilo para publicar mi código. Dejaré colgado aquí el link para que lo veas

Gracias por ayudar de forma desinteresada , te debo una amigo :D
En línea

Mad Antrax
Colaborador
***
Desconectado Desconectado

Mensajes: 2.166


Cheats y Trainers para todos!


Ver Perfil WWW
Re: [ SRC ] Actualizador de Aplicaciones
« Respuesta #38 en: 15 Octubre 2013, 23:51 pm »

Gracias por ayudar de forma desinteresada , te debo una amigo :D

http://foro.elhacker.net/programacion_visual_basic/app_source_smart_updater_anade_un_autoactualizador_a_tus_programas_facil-t400743.0.html;new#new
En línea

No hago hacks/cheats para juegos Online.
Tampoco ayudo a nadie a realizar hacks/cheats para juegos Online.
Páginas: 1 2 3 [4] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines