elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Entrar al Canal Oficial Telegram de elhacker.net


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  Problema con ProgressBar
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Problema con ProgressBar  (Leído 2,551 veces)
scavdr

Desconectado Desconectado

Mensajes: 12


Ver Perfil
Problema con ProgressBar
« en: 24 Agosto 2012, 01:43 am »

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)

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)


« Última modificación: 24 Agosto 2012, 03:09 am por raul338 » En línea

USLO

Desconectado Desconectado

Mensajes: 175

Programador(C#,Vb.net,Asp.Net,JavaAndroid)


Ver Perfil
Re: Problema con ProgressBar
« Respuesta #1 en: 24 Agosto 2012, 11:38 am »

Hola SCAvdr

Mira yo lo que haria es: Saca el tamano de fichero al completo.

Lo divides entre 100.

Y ya tienes lo que seria 1% en KB

Luego solo tienes que ir comprobando si a superado o no ese porciento.


No se si me he explicado.



Bueno eso seria para hacer algo mu sencillito.Si quieres algo mas completo.

Voy a ser bueno y te dejo un enlace que seguro que te servira!

xDD


Código:
http://www.codeproject.com/Articles/17979/Downloading-Files-in-NET-With-All-Information-Prog

Saludos


En línea

scavdr

Desconectado Desconectado

Mensajes: 12


Ver Perfil
Re: Problema con ProgressBar
« Respuesta #2 en: 24 Agosto 2012, 21:10 pm »

genial, gracias por el dato, me sirvio mucho, gracias
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Progressbar
Programación Visual Basic
Sk8er_boy12 4 2,711 Último mensaje 13 Septiembre 2005, 00:40 am
por Slasher-K
aki esta el progressbar
Programación Visual Basic
elpato_zeta 1 1,443 Último mensaje 5 Octubre 2005, 00:08 am
por NYlOn
Problema progressbar warhackgame
Programación Visual Basic
Sk8er_boy12 0 1,171 Último mensaje 30 Noviembre 2005, 18:25 pm
por Sk8er_boy12
progressbar porcentaje
Programación Visual Basic
alfa_28 7 6,627 Último mensaje 21 Septiembre 2006, 06:40 am
por Zibra
listbox y progressbar
Programación Visual Basic
Scrack_For 6 2,573 Último mensaje 16 Enero 2007, 00:12 am
por CeLaYa
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines