Autor
|
Tema: Ayuda con un Downloader... (Leído 1,738 veces)
|
sp26
Desconectado
Mensajes: 88
|
Hola a todos... Estoy haciendo un downloader y necesito saber de que manera puedo medir los Kb/s (Velocidad de descarga) va el archivo... Osea, si estoy descargando un archivo de 1 MB, mi idea es que marque a la velocidad que va (Por ejemplo, 100 Kb/s y faltan x:xx:xx (Tiempo)) Tambien quisiera saber si hay alguna forma de crear archivos .EXE, busque en esta sección sobre como crearlos, pero al final no lo encontre... Agradeceria su ayuda , ya que esto es para un proyecto en mi instituto.... asias...
|
|
|
En línea
|
|
|
|
CeLaYa
Desconectado
Mensajes: 543
|
mira esta es parte de un código que hice para descargar archivos de un ftp, aqui voy mostrando el avance de descarga que lleva el archivo, se me ocurre que si yo llevo la cuenta de bytes descargados con "Len(vtData)" tal vez puedas sacar cuantos bytes se descargan por segunto, y por consiguiente cual sería el tiempo restante de la descarga. Private Sub Inet1_StateChanged(ByVal State As Integer) Dim vtData As Variant 'acá almacenamos los datos Dim prog As Double, filesize As Long, contenttype As String On Local Error GoTo linea1 Select Case State Case icError ' 11 ' En caso de error, devuelve ResponseCode y ResponseInfo. vtData = Inet1.ResponseCode & ":" & Inet1.ResponseInfo 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 & "\" & nArchivo 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
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 prog = (ProgressBar1.Value + Len(vtData) * 2) / 1000000 lblDescarga.Caption = "Descargando: " & Format(prog, "0.00") & "MB de " & Format(filesize / 1000000, "0.00") & "MB" ' Leemos de pedazos de a 1 kb (1024 bytes) vtData = Inet1.GetChunk(1024, icByteArray) DoEvents If Len(vtData) = 0 Then bDone = True Loop completo = bDone Close #1 ProgressBar1.Value = 0 End Select Exit Sub linea1: MsgBox "Error al conectarse al servidor" & vbCrLf & vbCrLf & Err.Number & vbCrLf & Err.Description, vbInformation + vbOKOnly, App.EXEName completo = True On Local Error GoTo 0
End Sub
|
|
|
En línea
|
"La soledad es el elemento de los grandes talentos". Cristina de Suecia (1626-1689) Reina de Suecia.
|
|
|
sp26
Desconectado
Mensajes: 88
|
Entendi todo (O la mayoria de tu codigo), pero, exactamente donde indico que archivo va a bajar?
|
|
|
En línea
|
|
|
|
NYlOn
Desconectado
Mensajes: 842
OOOOHHHHHH, TARAGÜIIII xDDDDDD
|
Eso es el evento del control Inet. Lo que tenes que hacer es poner ese codigo y despues con el control bajar el archivo normalmente.
PD: Acordate de crear los controles que te pide como lblDescarga, etc.
|
|
|
En línea
|
|
|
|
CeLaYa
Desconectado
Mensajes: 543
|
Entendi todo (O la mayoria de tu codigo), pero, exactamente donde indico que archivo va a bajar?
eso lo haces asi private sub descargar With Inet1 'ProgressBar1.Value = 0 .AccessType = icUseDefault .UserName = "usuario" .Password = "pass" nArchivo = "archivo.xxx" .URL = "http://www.servidor.com/Carpeta/" & nArchivo .Execute , "GET" 'Indicamos que vamos a descargar o recuperar un archivo desde una url End With end sub
|
|
|
En línea
|
"La soledad es el elemento de los grandes talentos". Cristina de Suecia (1626-1689) Reina de Suecia.
|
|
|
sp26
Desconectado
Mensajes: 88
|
Ya lo probe, pero al final no descargo el archivo...
|
|
|
En línea
|
|
|
|
|
|