hola q tal, soy nuevo en este foro, bueno veras accedi a este foro por siento que ya tope jejejeje, veran tengo una aplicación que descargar un archivo de googlecode.com y tengo un progressbar.ctl(esto no lo hice yo) pero veran este control me ha funcionado con otras cosas, pero a la hora de descargar un archivo, dicho control no incrementa su valor, en cambio un progressbar del que trae vb6 si lo hace, no se cual sera el problema, si es lo mismo. bueno este es el codigo del form donde se conectar al servidor para descargar el programa y el codigo del progressbar modificado.
el control que ocupo para descargar el archivo es el mentado inet(microsoft internet transfer)
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
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)