VB 5/6-Tipp 0602: Eine Datei suchen mithilfe der SearchTreeForFile Funktion
von Konrad Doblander
Beschreibung
Tipp 128 und Tipp 414 zeigen, wie man mit VB eine Datei suchen kann. Dieser Tipp zeigt, wie es einfacher geht. Der Nachteil liegt dabei aber klar auf der Hand: Das Programm friert solange ein, bis die Datei gefunden ist.
Schwierigkeitsgrad: | Verwendete API-Aufrufe: | Download: |
'Dieser Quellcode stammt von http://www.activevb.de 'und kann frei verwendet werden. Für eventuelle Schäden 'wird nicht gehaftet. 'Um Fehler oder Fragen zu klären, nutzen Sie bitte unser Forum. 'Ansonsten viel Spaß und Erfolg mit diesem Source! '------------- Anfang Projektdatei Projekt1.vbp ------------- '--------- Anfang Formular "Form1" alias Form1.frm --------- ' Steuerelement: Schaltfläche "Command1" ' Datei rekursiv suchen Private Declare Function SearchTreeForFile Lib "imagehlp.dll" ( _ ByVal RootPath As String, ByVal InputPathName As String, _ ByVal OutputPathBuffer As String) As Long Const MAX_PATH = 160 ' rekursive Dateisuche Public Function FileFind(ByRef hFileName As String, _ Optional ByVal hPart As String = "C:\") As String Dim rApi As Long Dim hPfad As String On Error Goto Fehler Err.Clear ' keine Datei übergeben If Len(Trim$(hFileName)) = 0 Then Err.Raise 75 ' ZielPfad vorbereiten hPfad = String(MAX_PATH, 0) ' API-Aufruf rApi = SearchTreeForFile(hPart, hFileName, hPfad) ' gefunden ? If rApi = 0 Then Err.Raise 76 ' Rückgabewert FileFind = Left(hPfad, InStr(hPfad, Chr(0)) - 1) Exit Function Fehler: Err.Clear FileFind = "" End Function Private Sub Command1_Click() MsgBox "Notepad wurde gefunden in: " & FileFind("notepad.exe", "C:\Windows\") End Sub '---------- Ende Formular "Form1" alias Form1.frm ---------- '-------------- Ende Projektdatei Projekt1.vbp --------------
Tipp-Kompatibilität:
Windows/VB-Version | Win32s | Win95 | Win98 | WinME | WinNT4 | Win2000 | WinXP |
VB4 | |||||||
VB5 | |||||||
VB6 |
Ihre Meinung
Falls Sie Fragen zu diesem Artikel haben oder Ihre Erfahrung mit anderen Nutzern austauschen möchten, dann teilen Sie uns diese bitte in einem der unten vorhandenen Themen oder über einen neuen Beitrag mit. Hierzu können sie einfach einen Beitrag in einem zum Thema passenden Forum anlegen, welcher automatisch mit dieser Seite verknüpft wird.
Archivierte Nutzerkommentare
Klicken Sie diesen Text an, wenn Sie die 6 archivierten Kommentare ansehen möchten.
Diese stammen noch von der Zeit, als es noch keine direkte Forenunterstützung für Fragen und Kommentare zu einzelnen Artikeln gab.
Aus Gründen der Vollständigkeit können Sie sich die ausgeblendeten Kommentare zu diesem Artikel aber gerne weiterhin ansehen.
Kommentar von Mischa am 10.06.2009 um 15:22
Hallo.
Ich würde gern wissen wie ich diese Suchfunktion mit
ShellExecute verbinden kann.Also mein Programm soll die Datei automatisch suchen wie im Beispielprojekt aber es soll die datei nachdem es sie gefunden hat auch starten.
Kommentar von Eizvber am 24.08.2004 um 20:13
Nö, gehts nicht, da es eine Api funktion ist. Man müsste das in der DLL ändern. Aber das geht ja bekanntlich nicht, bez. man darf es nicht.
Kommentar von Axel W. am 01.07.2004 um 21:13
Ööhm... ehrlich gesagt, ich hab mir den Tipp nicht sooooooooo genau angeschaut, aber zum, Thema "einfrieren": Kann man da nich einfach rigendwo ein DoEvents reinsetzen?
Kommentar von Nils am 04.03.2004 um 16:38
Bei mir geht das unter WinXP Pro. und VB6.
Kommentar von Jochen Wierum am 29.08.2003 um 10:08
@Nightmare:
Das Programm funktioniert devinitiv auf einem Windows XP Pro Rechner!
Existiert denn die Datei imagehlp.dll im System32 Ordner?
Alles weitere am besten per Mail (JoWi@ActiveVB.de)
Gruß,
Jochen Wierum
Admin @ActiveVB
Kommentar von Nightmare am 28.08.2003 um 22:36
Tja,
leider funktioniert dieses Programme bzw. diese Funktionen unter Windows XP Pro mit VB6 nicht.
Gruß
Nightmare