Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: yalosabes en 14 Febrero 2006, 04:27 am



Título: Bajar un archivo de una url con progreso
Publicado por: yalosabes en 14 Febrero 2006, 04:27 am


DEjo un ejemplo que saquè de la pàgina de micro$oft de como descar un archivo de una url mediante el control Inet. Yo le agreguè una barra de progreso pero no usando el Progressbar , sino mediante 2 Shape.

Poner un command1 que comienza la descarga
Un Control Inet
2 Shapes, Shape1 y Shape2

Nota: El Shape1 se usa para mostar el contorno del total del progreso, y el shape2 es el que va aumentando, es decir el progreso.


Private Sub Command1_Click()
   
    Inet1.AccessType = icUseDefault
    Inet1.URL = "http://upx.sourceforge.net/download/upx124w.zip"
    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
    Dim nomArchivo As String
    'extraemos de la ruta entera solo el nombre del archivo
    nomArchivo = Right(Inet1.URL, Len(Inet1.URL) - InStrRev(Inet1.URL, "/"))

    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
         
     
        contenttype = Inet1.GetHeader("Content-type")
        'Creamos y abrimos un nuevo archivo en modo binario
        Open App.Path + "\" + nomArchivo 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 = 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
        Shape2.Width = 0
        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
             Shape2.Width = Shape2.Width + (Len(vtData) * 2) * Shape1.Width / filesize
             
             ' 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
   
   
    End Select

End Sub


 
 
 




Título: Re: Bajar un archivo de una url con progreso
Publicado por: Robokop en 14 Febrero 2006, 04:54 am
Citar
Yo le agreguè una barra de progreso pero no usando el Progressbar , sino mediante 2 Shape
tu se lo agregaste o MAS BIEN querras decir la copiaste de canal visual basic


Título: Re: Bajar un archivo de una url con progreso
Publicado por: yalosabes en 14 Febrero 2006, 04:58 am
copie el texto completamente de canal visual basic, sin embargo me parecio bueno ponerlo en este foro, porque podria ser de utilidad para alguien, o estoy ekivokado?


Título: Re: Bajar un archivo de una url con progreso
Publicado por: Kizar en 14 Febrero 2006, 23:00 pm
Cuando pongas algun codigo o alguna cosa k no es tuya, pon siempre la fuente de la que proviene y el autor, por respeto al autor que se lo a currao y por si nos apetece leer todo el articulo.
Porque copiar y pegar lo sabemos hacer todos.

Salu2


Título: Re: Bajar un archivo de una url con progreso
Publicado por: Robokop en 15 Febrero 2006, 02:55 am
copie el texto completamente de canal visual basic, sin embargo me parecio bueno ponerlo en este foro, porque podria ser de utilidad para alguien, o estoy ekivokado?
Pues parecio que te quisieras ameritar los creditos porque primero lo dijiste que lo sacaste de una pagina de microsoft y despues k tu le agregaste los shapes