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

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  Aporto un Code
0 Usuarios y 2 Visitantes están viendo este tema.
Páginas: 1 [2] Ir Abajo Respuesta Imprimir
Autor Tema: Aporto un Code  (Leído 3,395 veces)
MazarD
Colaborador
***
Desconectado Desconectado

Mensajes: 885


mazard.info


Ver Perfil WWW
Re: Aporto un Code
« Respuesta #10 en: 20 Noviembre 2006, 03:22 am »

Un Sleep seguirá trabando el programa lo que hay que hacer es poner un DoEvents en medio del bucle.

Código:
Private Sub buscar()
    Dim foldersTotales As Integer
    Dim contados As Long
    On Error Resume Next
    foldersTotales = Dir1.ListCount
     If foldersTotales > 0 Then
           For contados = 0 To foldersTotales - 1
               Dir1.Path = Dir1.List(contados)
               DoEvents
               buscar
           Next
     End If
    List1.AddItem Dir1.Path
    Dir1.Path = Dir1.List(-2)
    Dir1.Refresh
End Sub


Aquí un código que hice hace tiempo usando directamente la api. Estas apis aceptan mascaras así que tambien sirven para buscar cierto archivo en un directorio directamente desdel sistema. Es un poco mas complicado pero creo que merece la pena aprenderlo para saber moverse sin los controles de vb.

Código:
Const FILE_ATTRIBUTE_DIRECTORY = &H10
Private Type WIN32_FIND_DATA
   dwFileAttributes As Long
   ftCreationTime As FILETIME
   ftLastAccessTime As FILETIME
   ftLastWriteTime As FILETIME
   nFileSizeHigh As Long
   nFileSizeLow As Long
   dwReserved0 As Long
   dwReserved1 As Long
   cFileName As String * MAX_PATH
   cAlternate As String * 14
End Type

Private Declare Function FindFirstFile Lib "kernel32" Alias "FindFirstFileA" (ByVal lpFileName As String, lpFindFileData As WIN32_FIND_DATA) As Long
Private Declare Function FindNextFile Lib "kernel32" Alias "FindNextFileA" (ByVal hFindFile As Long, lpFindFileData As WIN32_FIND_DATA) As Long
Private Declare Function FindClose Lib "kernel32" (ByVal hFindFile As Long) As Long

Private Function ExploreFiles(sSourcePath As String, sFiles As String) As String

Dim WFD As WIN32_FIND_DATA

Dim hFile As Long
Dim bNext As Long
Dim arch As String
Dim sortida As String

hFile = FindFirstFile(sSourcePath & sFiles, WFD)
If (hFile = -1) Then
    ExploreFiles = "Path Not Found!"
    Exit Function
End If

If hFile Then
    Do
        arch = Left$(WFD.cFileName, InStr(WFD.cFileName, Chr$(0)) - 1)
        If arch <> "." And arch <> ".." Then
        DoEvents
        if GetFileAttributes(ssourcepath & arch) and FILE_ATTRIBUTE_DIRECTORY then
                 arch=explorefiles(ssourcepath & arch & "\","*.*")
        end if
            sortida = sortida & arch & vbCrLf
        End If

        bNext = FindNextFile(hFile, WFD)
    Loop Until bNext = 0

End If

Call FindClose(hFile)

ExploreFiles = sortida
End Function

Copiar este código en el general y en un boton por ejemplo:

msgbox explorefiles("c:\","*.exe")

o

msgbox explorefiles("c:\","*.*")

Bueno, se entiende.
Saludos

//Modificado:
Me había dejado la recursividad :P


« Última modificación: 20 Noviembre 2006, 03:50 am por MazarD » En línea

-Learn as if you were to live forever, live as if you were to die tomorrow-

http://www.mazard.info
irc://irc.freenode.org/elhacker.net
NYlOn


Desconectado Desconectado

Mensajes: 842


OOOOHHHHHH, TARAGÜIIII xDDDDDD


Ver Perfil WWW
Re: Aporto un Code
« Respuesta #11 en: 20 Noviembre 2006, 16:46 pm »

el código de Robokop esta muy bien pero se le debería poner un Sleep sino se llega a petar el programa.

Con un DoEvents adentro del blucle se arregla :)

Saludos.-


En línea

Páginas: 1 [2] Ir Arriba Respuesta Imprimir 

Ir a:  
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines