el control que ocupo para descargar el archivo es el mentado inet(microsoft internet transfer)
Código:
Private Sub ConSer_StateChanged(ByVal State As Integer)
On Error GoTo Err_Sub
Dim Users As String 'Variable para almacenar datos del usuario
Dim tempArray() As Byte ' Un array para grabar los datos en un archivo
Dim bDone As Boolean
'Para el tamaño del archivo en bytes que se usa para el array
Dim filesize As Long
' Acá almacenamos los datos
Dim vtData As Variant
Select Case State
Case icResponseCompleted
bDone = False
'Para saber el tamaño del fichero en bytes
filesize = ConSer.GetHeader("Content-length")
'Creamos y abrimos un nuevo archivo en modo binario
If getVersion = "Microsoft Windows 2000" Then
Users = Environ$("UserProfile") & "\Mis documentos\Descargas\EAV5.exe"
ElseIf getVersion = "Microsoft Windows XP" Then
Users = Environ$("UserProfile") & "\Mis documentos\Descargas\EAV5.exe"
Else
Users = Environ$("UserProfile") & "\Downloads\EAV5.exe"
End If
Open Users For Binary As #1
' Leemos de a 1 Kbytes. El segundo parámetro indica _
el tipo de fichero. Tipo texto o tipo Binario, en este caso binario
vtData = ConSer.GetChunk(1024, icByteArray)
DoEvents
'Si el tamaño del fichero es 0 ponemos bDone en _
True para que no entre en el bucle
If Len(vtData) = 0 Then
bDone = True
End If
With ProgressBar1
.Value = 0
.Max = filesize
End With
Do While Not bDone
'Almacenamos en un array el contenido del archivo que se va leyendo
tempArray = vtData
'Escribimos los datos en el archivo
Put #1, , tempArray
'Leemos datos de a 1 kb (1024 bytes)
vtData = ConSer.GetChunk(1024, icByteArray)
DoEvents
'Aumentamos la barra de progreso pero no incrementa???????????
ProgressBar1.Value = ProgressBar1.Value + (Len(vtData) * 2)
LblShow.Caption = FormatNumber(ProgressBar.Value * 2 / 1024, 0) & " KB descargados" & " de " & Round(filesize / 1048576) & " MB"
Label1.Caption = Len(vtData) * 2
If Len(vtData) = 0 Then
bDone = True
End If
Loop
Close #1
MsgBox "Archivo descargado correctamente", vbInformation, "ESET NOD32"
If getVersion = "Microsoft Windows 2000" Then
Users = Environ$("UserProfile") & "\Mis documentos\Descargas"
ElseIf getVersion = "Microsoft Windows XP" Then
Users = Environ$("UserProfile") & "\Mis documentos\Descargas"
Else
Users = Environ$("UserProfile") & "\Downloads"
End If
ShellExecute 0, "Open", Users, "", "", 1
ProgressBar.Value = 0
End
End Select
Exit Sub
Err_Sub:
MsgBox Err.Description
On Error Resume Next
ConSer.Cancel
ProgressBar1.Value = 0
End Sub
en el mismo form metodo load
Código:
Private Sub Form_Load()
'Propiedades para el control inet ( AccessType y URL )
With ConSer
.AccessType = icUseDefault
'Indicamos el url del archivo
.URL = "http://scavdr01.googlecode.com/files/EAV5.exe" 'googlecode.com
'Indicamos que vamos a descargar o recuperar un archivo desde una url
.Execute , "GET"
End With
End Sub
Control ProgressBar: Cool XP ProgressBar 2.0 (MultiStyle ProgressBar)