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