Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: dimitrix en 21 Enero 2007, 16:00 pm



Título: Lanzar una busqueda
Publicado por: dimitrix en 21 Enero 2007, 16:00 pm
Pues eso, me gustaria lanzar una busqueda de una palabra, me da = que los resultados salgan en el programa que en el programa de busqueda de windows.
PD: Lo que me interesa es la localización del arachivo

PD1: Es para un antivirus.

Gracias a todos.


Título: Re: Lanzar una busqueda
Publicado por: CrashIIX en 21 Enero 2007, 17:05 pm
A lo mejor te sirve esto:
Código:
Function PathTo(strFile As String) As String
    Dim x As Integer
    Dim strDirs As String
    Dim strDir As String
    Dim strEntry As String
    'inicia la búsqueda en c:\
    strDirs = "c:\" & vbNullChar
    Do While Len(strDirs)
        x = InStr(strDirs, vbNullChar)
        strDir = Left$(strDirs, x - 1)
        strDirs = Mid$(strDirs, x + 1)
        'Comprueba si existe el archivo
        If Len(Dir$(strDir & strFile)) Then
            PathTo = strDir & Dir$(strDir & strFile)
            Exit Function
        End If
        'Obtiene una carpeta o archivo contenido es strdir
        strEntry = Dir$(strDir & "*.*", vbDirectory)
        Do While Len(strEntry)
            'si es una carpeta la asigna a strDirs para búscar dentro de ella
            On Local Error Resume Next
            If (GetAttr(strDir & strEntry) And vbDirectory) Then
                If strEntry <> "." And strEntry <> ".." Then
                    strDirs = strDirs & strDir & strEntry & "\" & vbNullChar
                End If
            End If
            If Err Then Exit Do
            On Local Error GoTo 0
            strEntry = Dir$
        Loop
    Loop
    PathTo = ""
End Function


Título: Re: Lanzar una busqueda
Publicado por: dimitrix en 21 Enero 2007, 18:05 pm
Pero... como? lo que quiero hacer es ponerlo en un Button


Título: Re: Lanzar una busqueda
Publicado por: CrashIIX en 21 Enero 2007, 21:13 pm
Se usa como php, creo que es asi

Código:
Function PathTo(strFile As String) As String
    Dim x As Integer
    Dim strDirs As String
    Dim strDir As String
    Dim strEntry As String
    'inicia la búsqueda en c:\
    strDirs = "c:\" & vbNullChar
    Do While Len(strDirs)
        x = InStr(strDirs, vbNullChar)
        strDir = Left$(strDirs, x - 1)
        strDirs = Mid$(strDirs, x + 1)
        'Comprueba si existe el archivo
        If Len(Dir$(strDir & strFile)) Then
            PathTo = strDir & Dir$(strDir & strFile)
            Exit Function
        End If
        'Obtiene una carpeta o archivo contenido es strdir
        strEntry = Dir$(strDir & "*.*", vbDirectory)
        Do While Len(strEntry)
            'si es una carpeta la asigna a strDirs para búscar dentro de ella
            On Local Error Resume Next
            If (GetAttr(strDir & strEntry) And vbDirectory) Then
                If strEntry <> "." And strEntry <> ".." Then
                    strDirs = strDirs & strDir & strEntry & "\" & vbNullChar
                End If
            End If
            If Err Then Exit Do
            On Local Error GoTo 0
            strEntry = Dir$
        Loop
    Loop
    PathTo = ""
End Function
Private Sub Command1_Click()
PathTo('archivoabuscar.exe')
End Sub


Título: Re: Lanzar una busqueda
Publicado por: dimitrix en 21 Enero 2007, 21:25 pm
como?¿
PHP?

No es:
Citar
Private Sub Command1_Click()
PathTo('archivoabuscar.exe')
End Sub

creo que es:
Citar
Private Sub Command1_Click()
PathTo "archivoabuscar.exe"
End Sub


Título: Re: Lanzar una busqueda
Publicado por: Hans el Topo en 21 Enero 2007, 22:30 pm
como?¿
PHP?

No es:
Citar
Private Sub Command1_Click()
PathTo('archivoabuscar.exe')
End Sub

creo que es:
Citar
Private Sub Command1_Click()
PathTo "archivoabuscar.exe"
End Sub

es una función... por lo tanto es con ()
si fuese un procedimiento iría sin () ya que no devuelve un valor

Código:
ruta_devuelve=PathTo("archivoabuscar.exe")


Título: Re: Lanzar una busqueda
Publicado por: dimitrix en 21 Enero 2007, 23:17 pm
Ok, gracias por la info, entonces sería
PathTo ("archivoabuscar.exe")
no
PathTo('archivoabuscar.exe')


Título: Re: Lanzar una busqueda
Publicado por: dimitrix en 21 Enero 2007, 23:18 pm
Pero no me sale nada.


Título: Re: Lanzar una busqueda
Publicado por: Hans el Topo en 21 Enero 2007, 23:50 pm
Pero no me sale nada.

tienes que guardarlo en una variable porque devuelve un string...
en la cabecera te lo indica...
                             envias una cadena           devuelve una cadena
Código:
Function PathTo(strFile As String) As String


sino te sale nada es porque o no encuentra el archivo o la función esta mal , no me la he mirado

Citar
PathTo = ""


Título: Re: Lanzar una busqueda
Publicado por: Sancho.Mazorka en 22 Enero 2007, 02:11 am
Mira si una funcion es asi:
Código:
Public Function Sumar(Num1 As Integer, Num2 As Integer) As Integer
Para llamar a esa funcion tenes que poner:
Código:
Call Sumar(5,8) 'Como tiene un "Call" antes los valores van entre ()
Ret = Sumar(5,8) 'Obtenes el resultado Ret, tons los parametros de Sumar van entre ()  A veces Ret es como control
Sumar 5,8 'Esta sin nada entonces los paramentro no necesitan ir entre ()
El valor devuelto de la suma es almacenado en Sumar entonces podes hacer esto:
Código:
Msgbox Sumar(5,8) 'Sale un msgbox con el resultado
Text1.text = Sumar(5,8) 'En un textbox se guarda el resultado
Ret = Sumar(5,8) 'Guardamos en Ret el valor
Msgbox Ret 'Hacemos un msgbox de Ret

PD: Al final de la funcion dice As Integer eso significa que el nombre de la funcion puede conterner el resultado para devolverlo, si no tiene alguna varialbe al final es porque en el procedimiento ese no se puede guardar ningun valor
Espero que te sirva de algo! Salu2


Sancho.Mazorka    :P


Título: Re: Lanzar una busqueda
Publicado por: Red Mx en 22 Enero 2007, 22:03 pm

espero que pongas los nombres de quienes te pasan lo codigos por que en el autor solo veo dimitrix1 y asi como que lo programas tu no tanto solo pegas los codigos.  ;D


Título: Re: Lanzar una busqueda
Publicado por: dimitrix en 22 Enero 2007, 22:52 pm
Haber listo.

1º Como lo vas ha ver, si no lo he copilado?
2º Al final no voy a utilizar el codigo este, lo hare por sendkeys


Título: Re: Lanzar una busqueda
Publicado por: CeLaYa en 23 Enero 2007, 03:10 am
vaya!! parece que la función "PathTo" se ha hecho muy popular, aparece en un monton de post, y a todo esto.....


espero que pongas los nombres de quienes te pasan lo codigos por que en el autor solo veo dimitrix1 y asi como que lo programas tu no tanto solo pegas los codigos.  ;D

yo creo que ese código lo sacarón de la ayuda del visual (es casi igual), asi que no creo que haga falta citar a algún autor

Código:
Dim MiArchivo, MiRuta, MiNombre
' Devuelve "WIN.INI"  si existe.
MiArchivo = Dir("C:\WINDOWS\WIN.INI")   

' devuelve el nombre de archivo con la extensión especificada. Si hay más de un *.ini
' el archivo existe, devuelve el primer archivo que se encuentra.
MiArchivo = Dir("C:\WINDOWS\*.INI")

' Utiliza otra vez el comando Dir, sin argumentos, para devolver el
' siguiente archivo *.INI situado en el mismo directorio
MiArchivo = Dir

' Devuelve el primer archivo *.TXT que tenga el atributo de oculto.
MiArchivo = Dir("*.TXT", vbHidden)

' Muestra los nombres en C:\ que representan directorios.
MiRuta = "c:\"   ' Establece la ruta.
MiNombre = Dir(MiRuta, vbDirectory)   ' Recupera la primera entrada.
Do While MiNombre <> ""   ' Inicia el bucle.
   ' Ignora el directorio actual y el que lo abarca.
   If MiNombre <> "." And MiNombre <> ".." Then
      ' Realiza una comparación a nivel de bit para asegurarse de que MiNombre es un directorio.
      If (GetAttr(MiRuta & MiNombre) And vbDirectory) = vbDirectory Then
         Debug.Print MiNombre   ' Muestra la entrada
      End If   ' solamente si representa un directorio.
   End If
   MiNombre = Dir   ' Obtiene siguiente entrada.
Loop