Bajar automaticamente archivos, desde una web
Hola, tengo que deserrollar una aplicación en Visual Basic para bajar desde una web distintos archivos, como podria desarrolarlo y que componente puedo utilizar, me gustaria que me ayudaseis ya que soy novato en visual.
Const scUserAgent = "PonTuNombreAqui"
Const INTERNET_OPEN_TYPE_DIRECT = 1
Const INTERNET_OPEN_TYPE_PROXY = 3
Const INTERNET_FLAG_RELOAD = &H80000000
Private Declare Function InternetOpen Lib "wininet" Alias "InternetOpenA" (ByVal sAgent As String, ByVal lAccessType As Long, ByVal sProxyName As String, ByVal sProxyBypass As String, ByVal lFlags As Long) As Long
Private Declare Function InternetCloseHandle Lib "wininet" (ByVal hInet As Long) As Integer
Private Declare Function InternetReadFile Lib "wininet" (ByVal hFile As Long, ByVal sBuffer As String, ByVal lNumBytesToRead As Long, lNumberOfBytesRead As Long) As Integer
Private Declare Function InternetOpenUrl Lib "wininet" Alias "InternetOpenUrlA" (ByVal hInternetSession As Long, ByVal lpszUrl As String, ByVal lpszHeaders As String, ByVal dwHeadersLength As Long, ByVal dwFlags As Long, ByVal dwContext As Long) As Long
Function BajarFichero(sURL As String, sFichero As String, Optional sProxy As String = vbNullString, Optional sNoProxy As String = vbNullString) As Boolean
'sURL = dirección del fichero a bajar
'
'sFichero = nombre del fichero en el pc
'
'sProxy = dirección del proxy si es necesario. si no se pone lee la información del registro
'no poner una cadena vacía
'
'sNoProxy = lista de nombres y/o ip's para las que no se usará proxy. si ponemos sólo "" no se usará
'el proxy para direcciones que no contengan un punto. no poner una cadena vacía
'
Dim hOpen As Long, hFile As Long, sBuffer As String, Ret As Long, Res As Integer
Dim Fich As Integer, aux As String
'Crear buffer para recibir el fichero
sBuffer = Space(1000)
BajarFichero = False
'Crear una conexión a internet
hOpen = InternetOpen(scUserAgent, INTERNET_OPEN_TYPE_DIRECT, sProxy, sNoProxy, 0)
If hOpen = 0 Then Exit Function
'Abrir la url
hFile = InternetOpenUrl(hOpen, sURL, vbNullString, ByVal 0&, INTERNET_FLAG_RELOAD, ByVal 0&)
If hFile = 0 Then Exit Function
'abrimos el fichero en local
Fich = FreeFile()
If Dir(sFichero) <> "" Then Kill sFichero
Open sFichero For Binary As Fich
Res = 1: Ret = 1000
While Res = 1 And Ret = 1000
Res = InternetReadFile(hFile, sBuffer, 1000, Ret)
If Ret > 0 Then
aux = Left(sBuffer, Ret)
Put Fich, , aux
End If
Wend
'cierro el fichero
Close Fich
'cierro la conexión
InternetCloseHandle hFile
InternetCloseHandle hOpen
BajarFichero = True
End Function
Private Sub Command1_Click()
bResultado = BajarFichero("URL del fichero", "c:NombreFichero")
'La función también admite como parámetros el nombre o dirección de un proxy y la lista de máquinas a las que no iremos por proxy. Estos parámetros no deben indicarse si no se utilizan.
End Sub
