none
AYUDACON BARRA DE PROGRESO PROSGRESSBAR RRS feed

  • Pregunta

  • HOLA A TODOS  ESTY HACIENDO UN  PROYECTO DE ANTIVIRUS USB,  LO QUE QUIERO EL LA BARRA DE PROGRESO  AVANZE SEGUN EL ESCANEO Y QUE  TERMINE CUANDO EL ESCANEO TERMINE ! SE ENTIENDE?  AHI SUBO UNA PARTE DEL CODIGO  CUANDO LE DOY ESCANEAR .!!!

    Private Sub Button6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnAnaUSB.Click
            If ComboUSB.SelectedIndex = -1 Then
                MsgBox("Favor de seleccionar una unidad validad. . .", MsgBoxStyle.Exclamation, "Unidad no valida. . .")
                ComboUSB.Focus()
                Exit Sub
            End If



            Timer1.Start()


            NoAM.an.Text = " ANALIZANDO USB"
            Static yaEstoy As Boolean
            If yaEstoy Then
                Cancelar = True
             
                Me.BtnAnaUSB.Text = "Cancelando..."
                NoAM.an.Text = " ANALIZANDO USB"
                LStatusUsb.Text = "Archivos Detectados"
                Ftn.Status("El usuario a Cancelado el analisis de busqueda de virus USB. . . a las " & DateTime.Now.ToString("HH:mm:ss"), Me, Err:=True)
                Application.DoEvents()
                Exit Sub
            End If
            yaEstoy = True

          
            USBguardarConfig()
            Me.Cursor = Cursors.AppStarting
            Me.BtnAnaUSB.Text = "Cancelar"
            Me.Refresh()
            imageListLVUSB.Images.Clear()

         
            LVUsb.Items.Clear()

          

            

            Ftn.Status("Inicio el analisis para busqueda de virus en " & ComboUSB.Text & ". . .a las " & DateTime.Now.ToString("HH:mm:ss"), Me)


            LStatusUsb.Text = "Buscando virus en su equipo. . ."
          
            Dim stopW As Stopwatch
            stopW = Stopwatch.StartNew
           
            Dim di As New DirectoryInfo(ComboUSB.Text.Trim()) 'Se kitan los espacios en blanco
            If di.Exists = False AndAlso di.Attributes = FileAttributes.Archive Then
                di = New DirectoryInfo(Path.GetDirectoryName(di.FullName))
            End If
            If di.Exists Then
                AnalizaUSB(di.FullName, LVUsb, chkElimAutorrun.Checked, True)
                
            End If

           
            stopW.Stop()
            Dim totalSec As Double = stopW.ElapsedMilliseconds / 1000
            Dim totalMin As Double = CInt(totalSec / 60)
            totalSec = totalSec - totalMin * 60
            If Cancelar = False Then Ftn.Status("Termina Analisis a las " & DateTime.Now.ToString("HH:mm:ss"), Me)


            NoAM.an.Text = "FIN DEL ANALIZIS"
            Me.Cursor = Cursors.Default
            Me.BtnAnaUSB.Text = "Buscar"
            

            Me.LInfo3.Text &= String.Format(" Tiempo empleado: {0:#,##0.##} min {1:#,##0.0000} seg", totalMin, totalSec)
            NoAM.LInfo3.Text &= String.Format(" Tiempo empleado: {0:#,##0.##} min {1:#,##0.0000} seg", totalMin, totalSec)
            Me.Refresh()
            Cancelar = False
            yaEstoy = False
        End Sub

    COMO AGO QUE LA BARRA AVANCE SEGUN EN ANALIZIS !! GRACIAAASSSSSSSS


    alejandro

    viernes, 31 de octubre de 2014 0:50

Respuestas

  • Buenas Alejandro.  Le recuerdo que escribir todo en mayúsculas es el equivalente escrito de gritar, así que le solicito que por favor no grite. :-)

    Su problema se resuelve de manera experta utilizando un hilo de trabajo.  Veo que su proyecto es Windows Forms, así que le recomiendo aprender a utilizar el BackgroundWorker.

    Ese componente provee el evento DoWork() que es donde usted pondría el código para escanear, y dentro de él usted reportaría progreso periódicamente (normalmente dentro de un bucle). Luego en el evento ProgressChanged usted actualizaría la barra de progreso.

    No explico más porque no tiene caso si usted no conoce de hilos o del BackgroundWorker.  Empiece estudiando estos temas.


    Jose R. MCP
    Code Samples

    viernes, 31 de octubre de 2014 14:41
    Moderador