Aporto un Code

Iniciado por DrakoX, 17 Noviembre 2006, 23:59 PM

0 Miembros y 1 Visitante están viendo este tema.

DrakoX

Bueno, recien termine este code, sin basarme en ningun otro previo code.
lo hice para compartirlo con ustedes y espero que les sirva.

El code es este:

Sub code()
List1.AddItem ("C:\")
For y = 0 To 20000
    Dir1.Path = List1.List(y)
    For j = 0 To Dir1.ListCount - 1
        For x = 0 To List1.ListCount
            If Not List1.List(x) <> Dir1.List(j) Then
                GoTo 1:
            End If
        Next x
        If List1.ListCount <> 1000 Then
            List1.AddItem (Dir1.List(j))
        Else
            GoTo 2:
        End If
1
        DoEvents
    Next j
Next y
2
End Sub


El que entienda el code y sepa como funciona, va a saber como usarlo
y de que manera modificarlo para usarlo en otras cosas   ;D jeje.

No lo explico para que solo puedan usarlo quienes lo entiendan,
y espero que lo entiendad casi todos.

cuanto mas grande sea ese valor donde dice List1.ListCount <> 1000 mas carpetas va a dar (el que entienda el code  va a saber de q hablo).

bueno espero que lo difruten y sepan como usarlo.
cualquier otra duda consulten y si es posible comenten que tal jeje

salu2 y suerte

DrakoX

Estoy sorprendido de las maravillas que se pueden hacer con este code junto con otros.

Nunka ubiese esperado tener tantas cosas para hacer,
sin duda que si uno se las ingenia puede lograr muchas cosas con este code,
y pienso que es un exelente code para armar bichitos  >:D  >:D jeje.

Salu2

Robokop

.......
Esto no hace nada del otro mundo tan solo lista todas las carpetas derivadas del C:\ , bichitos con esta cosa? ... se hacen cosas iguales de formas mas simples ademas que el codigo tiene ciertos errores y eso de no querer explicar el codigo y solo para los que no entiendan mejor no pongas codigos sencillos porque se supone que el foro es para poder aprender y ayudar a los novatos no querer apantallar con cosas simples y no para dar pistas de hacer malware.

Meg

xxDDD le vas a kitar la ilusion pobrecillo  ;D

WarGhost

por lo menos a aportado algo, pero hay que decir que usar los controles de fichero de VB no es muy buena idea  :-\
¿Qué culpa tengo yo de tener la sangre roja y el corazón a la izquierda?

DrakoX

A mi no me quitan la ilusion,
mi opinion es esa y cada uno puede tener la suya  ;D

Paso a aclarar un poco de que se trata el code x si alguien no lo entiende,
y para que de todas formas pueda usarlo.

EL code basicamente lo que hace es listar las carpetas de un determinado Path,
en el codigo el path es C:\ por lo que se listaran todas las carpetas que se encuentren en el disco C pero el mismo code esta delimitado a 1000 carpetas, pero ese numero lo pueden cambiar y poner cuantas quieran.

Esta bueno para agrewgarselo a un worm o virus para que se propague dentro de un disco, para esto habria que poner un

FileCopy App.Path & "\" & App.EXEName & ".exe", Dir1.List(j)

luego de

List1.AddItem (Dir1.List(j))

Este code convinado con otro podria buscar un determinado archivo o extensión y borrarlos lo cual seria interesante ponerselo a un bichito
o sino tmb se podrian buscar las carpetas de los P2P para realizar un Propagación P2P.
sin duda el code es muy flexible y se presta para muchas cosas,
lo unico que hay q tener en cuenta es que se toma su tiempo en enumerar las carpetas.

para poder ver como funciona el code, lo unico que deben hacer es agregar en un projecto un list1 y un Dir1 y en el Form_Load colocar Call code.

espero q lo usen, o les sirva de algo

Citarse hacen cosas iguales de formas mas simples

si hay alguna otra forma mas simple para listar todas las carpetas de un Disco me gustaria que la postes así puedo aprender y la comienzo a utilizar  ;D

salu2

Bender-Deicide

Yo no se nada de VB apenas configurar XBOT pero explica para los que le interesa no te agas el genio por un codigito ::)
i7 860 @ 2.8 Ghz
Asus Sabertooth 55i
2X2 GB DDR3 1600 Geil Evo Two
Samsung SpinPoint 500GB SATA II 16MB Buffer
WD Green 1 TB SATA II 64MB Buffer
Gab Satellite 511K (Black)
Satellite SL-8600EPS 600watts
MSI HD5750 1GB GDDR5

Robokop

CitarxxDDD le vas a kitar la ilusion pobrecillo
no es querer quitarle la ilución ni nada del estilo pero la forma de mostrar el code no es la adecuada que mejor respuesta que esto:
CitarYo no se nada de VB apenas configurar XBOT pero explica para los que le interesa no te agas el genio por un codigito

Citarsi hay alguna otra forma mas simple para listar todas las carpetas de un Disco me gustaria que la postes así puedo aprender y la comienzo a utilizar
Formas mas simples miles y tal vez mucho mas simples de la que te voy a mostrar no reduce gran cantidad de lineas pero se entiende muy bien porque estoy usando correctamente la recursividad usar gotos es un mal habito.

mira este codigo
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)
               Form1.Refresh
               buscar
           Next
     End If
    List1.AddItem Dir1.Path
    Dir1.Path = Dir1.List(-2)
    Dir1.Refresh
    End Sub


El tuyo tiene 21 lineas el mio 16 y es mucho mas facil de entender el que te estoy mostrando.
Recuerda que gotos muy pocas veces se debe de usar ya que si es un trabajo empresarial otros programadores les va a doler la cabeza tratando de ver todo su funcionamiento.
Para implementar el codigo que puse tan solo hay que colocar un boton
'Buscador recursivo de carpeta by robokop
'Agregar un dirlist , listbox
Private Sub Command1_Click()
Dir1.Path = "c:\"
buscar
MsgBox ("Todos los archivos listados correctamente")
End Sub
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)
               Form1.Refresh
               buscar
           Next
     End If
    List1.AddItem Dir1.Path
    Dir1.Path = Dir1.List(-2)
    Dir1.Refresh
    End Sub

Mientras este listando las carpetas no le muevan al form ni le piquen ya que sale el letrero de no responde la aplicacion por la rapidez en que lista los archivos entonces al agregarlos al listbox traba el formulario.
Aqui uso el dirlist para mayor facilidad pero se puede remplazar por apis o agregando una referencia a microsoft scripting runtime y creando un objeto FileSystemObject
asi
Dim direc As New FileSystemObject
un ejemplo seria

Private Sub Form_Load()
'Agregar una referencia a microsoft scripting runtime
'menu->proyecto->referencia
    Dim Dire As New FileSystemObject
    Dim carpeta As Folder
    Dim i
    Set carpeta = Dire.GetFolder("C:\")
    If carpeta.SubFolders.Count = 0 Then: Exit Sub
    For Each i In carpeta.SubFolders
       List1.AddItem (i)
    Next
End Sub

es mejor listarlos de esta segunda forma o con apis porque asi se obtienen directorios ocultos que no se pueden obtener con el dirlist
salu2!!!

   


DrakoX

#8
CitarYo no se nada de VB apenas configurar XBOT pero explica para los que le interesa no te agas el genio por un codigito Cool

en ningun momento me hice el genio x este code

Robokop:
me gusto tu code:

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)
               Form1.Refresh
               buscar
           Next
     End If
    List1.AddItem Dir1.Path
    Dir1.Path = Dir1.List(-2)
    Dir1.Refresh
    End Sub


sin duda mucho mejor

salu2

WarGhost

el código de Robokop esta muy bien pero se le debería poner un Sleep sino se llega a petar el programa.
¿Qué culpa tengo yo de tener la sangre roja y el corazón a la izquierda?