Cita de: BADBYTE-K en 22 Mayo 2005, 22:47 PM
usando el control "inet"
vas a menu proyecto>componentes y buscas/activas el "Microsoft Internet transfer"
y aki te doy un code que encontre por ahi...Citar
Mediante el control Inet (Internet Transfer control), podemos descargar un archivo desde una dirección Url (archivo de texto o binario) y mostrar el progreso de descarga en una Progress bar. En este ejemplo se descarga desde la página de Softonic el programa Warez.exe y se vá mostrando el progreso
Colocar 1 control Inet y 1 progress bar. El archivo se guarda en la carpeta donde se ejecute el programa.
necesitas un Control Inet, un Progress, un commandCódigo [Seleccionar]
Private Sub Command1_Click()
ProgressBar1.Value = 0
Inet1.AccessType = icUseDefault
Inet1.URL = "http://download.warezclient.com/WarezP2P_DLC.exe"
Inet1.Execute , "GET" 'Indicamos que vamos a descargar o recuperar un _
archivo desde una url
End Sub
Private Sub Inet1_StateChanged(ByVal State As Integer)
Dim vtData As Variant 'acá almacenamos los datos
Select Case State
Case icResponseCompleted
Dim bDone As Boolean: bDone = False
Dim tempArray() As Byte ' Un array para grabar los datos en un archivo
'Para saber el tamaño del fichero en bytes
filesize = Inet1.GetHeader("Content-length")
'Establecemos el Max del = a al tamaño del archivo
ProgressBar1.Max = filesize
contenttype = Inet1.GetHeader("Content-type")
'Creamos y abrimos un nuevo archivo en modo binario
Open App.Path + "\WarezP2P_DLC.exe" For Binary Access Write 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 = Inet1.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
Do While Not bDone
'Almacenamos en un array el contenido del archivo
tempArray = vtData
'Escribimos el archivo en disco
Put #1, , tempArray
'Aumentamos la barra
ProgressBar1.Value = ProgressBar1.Value + Len(vtData) * 2
' Leemos de pedazos de a 1 kb (1024 bytes)
vtData = Inet1.GetChunk(1024, icByteArray)
DoEvents
If Len(vtData) = 0 Then
bDone = True
End If
Loop
Close #1
ProgressBar1.Value = 0
End Select
End Sub
el autor se llama luciano
Está muy bien el uso del Control Internet Transfer para una conexión a internet directa, pero como pudiera hacerlo con dicho control si la conexión es mediante un proxy que requiere autentificación.


