Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: sebas369 en 21 Julio 2006, 04:28 am



Título: Actualizacion automatica en vb
Publicado por: sebas369 en 21 Julio 2006, 04:28 am
Hola , estoy haciendo un software , y necesito el codigo para q al apretar en un boton , baje un archivo desde internet y lo coloque en la carpeta del .exe , lo q haria el software seria comparar el archivo q baja,con el archivo q esta recientemente y si son distintos le baja la nueva version , alguna idea ?
saludos


Título: Re: Actualizacion automatica en vb
Publicado por: <--v1c1ous--> en 21 Julio 2006, 06:36 am
Simplemente podes crear un ejecutable instalable y al pulsar comrueba si es una nueva versión y lo descarga, ejecuta la instalacion y se cierra para que el usuario siga la nueva instalacion y suplante la antigua.

Pero si lo que queres es especificamente reemplazar archivos en donde se encuentra el programa de instalacion, proseguis de igual forma chequeando nuevas actualizacion y cuando el usuario diga que quiere actualizar descargar los archivos de actualizacion a la carpeta (Con un nombre diferente) y luego el programa ejecuta un ejecutable de actualizacion y se cierra dejando que el mismo programa de actualizacion reemplace los nombre y elimine los archivos antiguos para prevenir errores en tiempo de ejecucion.


Título: Re: Actualizacion automatica en vb
Publicado por: sebas369 en 21 Julio 2006, 06:38 am
claro ,eso es lo q quiero hacer , pero necesito bajar los archivos desde inet , por q si no los baja no puede comprobar nada ,


Título: Re: Actualizacion automatica en vb
Publicado por: <--v1c1ous--> en 21 Julio 2006, 07:33 am
Vos elegis.

Podes lograrlo mediante el control Inet:

Declaraciones de la API de WinInet
http://foro.elhacker.net/index.php/topic,85007.0.html

Descargar un programa desde Internet Con Visual Basic 6.0
http://foro.elhacker.net/index.php/topic,71774.0.html

O utilizar winsock:

API de WinSock para VB (Completa)
http://foro.elhacker.net/index.php/topic,62753.0.html

introduccion al control winsock en VB
http://foro.elhacker.net/index.php/topic,17665.0.html

Tutorial del control winsock
http://foro.elhacker.net/index.php/topic,75832.0.html

Transferencia de archivos
http://lympex.sosvulnerable.net/resources/textos/programacion/envio_archivos_vb.htm


Título: Re: Actualizacion automatica en vb
Publicado por: sebas369 en 21 Julio 2006, 07:38 am
groxo hotmail  ;D , empiezo a leer ahora   :o :o :o :o


Título: Re: Actualizacion automatica en vb
Publicado por: NYlOn en 21 Julio 2006, 08:48 am
Si quieres podes usar la API URLDownloadToFile, es muy facil. Aca te dejo una funcion
En un modulo:
Código:
Private Declare Function URLDownloadToFile Lib "urlmon" Alias "URLDownloadToFileA" (ByVal pCaller As Long, ByVal szURL As String, ByVal szFileName As String, ByVal dwReserved As Long, ByVal lpfnCB As Long) As Long
Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long

Public Function BajarArchivo(ByVal URL As String, ByVal LocalFilename As String, Optional ByVal EXE As Boolean) As Boolean
    Dim Ret As Long
    Ret = URLDownloadToFile(0, URL, LocalFilename, 0, 0) 'bajas el archivo...
   
    If Ret = 0 Then ' si se bajo correctamente
        If EXE = True Then ShellExecute 0, "", LocalFilename, "", "", 0 'lo ejecutamos (esto es opcional)
    End If
   
    BajarArchivo = Ret 'devolvemos el resultado de la funcion (TRUE si hubo problemas)
End Function


Para usarla seria asi:
Código:
BajarArchivo("http://www.world-cs.com.ar/amd.jpg", "C:\asd.jpg", True)

Si te devuelve False es pq no hubo problemas, sino es q no se pudo bajar el archivo (ya sea por URL invlaida o porque indicaste mal la ruta local).

Espero que te sirva, slaudos.-


Título: Re: Actualizacion automatica en vb
Publicado por: sebas369 en 21 Julio 2006, 17:12 pm
jeje , gracias nylon  ;D , me ahorraste trabajo  :rolleyes: , no me gusta mucho estar leyendo todo :P , VAGO !  :-[