Verfügbare Laufwerke ermitteln
Veröffentlicht am 01.10.2004
Bevor Sie bzw. die Benutzer Ihrer Anwendung eine Datei anlegen bzw. speichern können, muß ein gültiges Laufwerk bestimmt werden. Hierfür wäre eine Liste der verfügbaren Laufwerke wünschenswert, die ganz komfortabel in einem Kombinationsfeld angezeigt werden kann.
Das Windows-API stellt eine Funktion zur Verfügung, die alle vorhandenen Laufwerke als Zahl des Typs Long zurückgibt. Die 26 rechts ausgerichteten Bits der zurückgegebenen Zahl stellen die 26 gültigen Laufwerke dar. Wenn ein Bit auf 1 gesetzt ist, ist das betreffende Laufwerk vorhanden.
Durch Einsatz der folgenden Schleife prüfen Sie jedes Bit der Zahl:
Dim i As Integer
For i = 0 To 25
If Zahl And 1 Then
' Laufwerknummer ist anwesend
End If
'Zahl ein Bit nach rechts verschieben, um nächste Laufwerk zu prüfen
Zahl = Zahl \ 2
Next i
Um die Zahl aus der Win-API zu ermitteln, benötigen Sie die Funktion GetLogicalDrives, die wie folgt deklariert wird.
Declare Function GetLogicalDrives Lib "kernel32" () As Long
Eine Funktion, die alle verfügbaren Laufwerke als Buchstaben im Testfenster anzeigt, würde dann folgendermaßen aussehen:
Public Function LaufwerkeAnzeigen()
Dim lLaufwerke As Long, i As Integer
lLaufwerke = GetLogicalDrives() ' logische Laufwerke ermitteln
For i = 0 To 25
If lLaufwerke And 1 Then ' Laufwerknummer ist anwesend
Debug.Print Chr$(65 + i) & ": " ' Laufwerkbuchstaben anzeigen
End If
' Wert ein Bit nach rechts verschieben,
'um nächste Laufwerknummer zu prüfen
lLaufwerke = lLaufwerke \ 2
Next i
End Function