Laufwerke, Ordner und Dateien in ListBox anzeigen

SendMessage
Das FileListBox-Steuerelement ist ziemlich langsam. Windows stellt für Listenfelder einen eigenen
Darstellungsmodus zur Verfügung, bei dem Laufwerke, Ordner und Dateien wahlweise angezeigt
werden können. In folgendem Beispiel bezeichnet List1 ein ListBox-Steuerelement:
Private Declare Function SendMessage Lib "user32.dll" Alias "SendMessageA" _
   (ByVal hWnd As Long, ByVal wMsg As Long, _
    ByVal wParam As Long, ByRef lParam As String) As Long
Private Const LB_DIR As Long = &H18D& ListBox für Dateianzeige.
Private Const DDL_READWRITE As Long = &H0& Dateien ohne spezielle Attribute anzeigen.
Private Const DDL_READONLY As Long = &H1& Schreibgeschützte Dateien anzeigen.
Private Const DDL_HIDDEN As Long = &H2& Versteckte Dateien anzeigen.
Private Const DDL_SYSTEM As Long = &H4& Systemdateien anzeigen.
Private Const DDL_DIRECTORY As Long = &H10& Ordner anzeigen.
Private Const DDL_ARCHIVE As Long = &H20& Archivierte Dateien anzeigen.
Private Const DDL_DRIVES As Long = &H4000& Laufwerke anzeigen.
' Nur Dateien mit dem gewünschten Attribut anzeigen, sonst werden Dateien ohne spezielle
' Attribute immer angezeigt.
Private Const DDL_EXCLUSIVE As Long = &H8000&
' Der Einsatz wäre mit dem folgenden Code möglich: die Konstanten werden nacheinander in separaten Aufrufen
' von 'SendMessage' gesendet, da sonst keine Sortierung nach Laufwerken, Ordnern und Dateien erfolgt.
' Laufwerke hinzufügen.
Call SendMessage(Form1.List1.hWnd, LB_DIR, _
    DDL_DRIVES Or DDL_EXCLUSIVE, ByVal "C:\*.*")
' Ordner hinzufügen.
Call SendMessage(Form1.List1.hWnd, LB_DIR, _
    DDL_DIRECTORY Or DDL_EXCLUSIVE, ByVal "C:\*.*")
' Dateien ohne spezielle Attribute hinzufügen.
Call SendMessage(Form1.List1.hWnd, LB_DIR, 0&, ByVal "C:\*.*")

 Ranking-Hits zurück Sitemap
Designed by www.wbrnet.info