Lanzar una busqueda

Iniciado por dimitrix, 21 Enero 2007, 16:00 PM

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

dimitrix

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.




CrashIIX

A lo mejor te sirve esto:
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

dimitrix

Pero... como? lo que quiero hacer es ponerlo en un Button




CrashIIX

Se usa como php, creo que es asi

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

dimitrix

#4
como?¿
PHP?

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

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




Hans el Topo

Cita de: dimitrix1 en 21 Enero 2007, 21:25 PM
como?¿
PHP?

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

creo que es:
CitarPrivate 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

ruta_devuelve=PathTo("archivoabuscar.exe")
 

dimitrix

Ok, gracias por la info, entonces sería
PathTo ("archivoabuscar.exe")
no
PathTo('archivoabuscar.exe')




dimitrix





Hans el Topo

Cita de: dimitrix1 en 21 Enero 2007, 23:18 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
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

CitarPathTo = ""
 

Sancho.Mazorka

#9
Mira si una funcion es asi:
Public Function Sumar(Num1 As Integer, Num2 As Integer) As Integer
Para llamar a esa funcion tenes que poner:
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:
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
Ganador Xeon Web Server ! ! !    Sancho.Mazorka :D
http://foro.elhacker.net/index.php/topic,171903.75.html