Home > Visual Basic Classic > Dateisystem > Laufwerkstyp ermitteln

Laufwerkstyp ermitteln

Veröffentlicht am 02.10.2008 von Sebastian Krogolewski

Artikelinformationen

Sprache:
Visual Basic 6
Datenbank:
keine

Artikel speichern

del.icioMister WongGoogleLinkarenaYiggSpurlFurl

Artikel bewerten

Bewertng:4.00 / 5 (3 mal bewertet)

Um das Ausführen der eigenen Anwendung oder das Speichern bzw. Öffnen von Dateien aus der Anwendung heraus auf bestimmten Laufwerkstypen zu verweigern, muss man den Laufwerkstypen bestimmen. In Visual Basic ist leider standardmässig keine Implementierung vorhanden, die Win API bietet; hier aber mit der Funktion GetDriveTypeA bzw. GetDriveTypeW aus der Kernel32.Dll eine Möglichkeit, dies nachzuholen. Sie ermittelt aus dem Wurzelverzeichnis des Laufwerks den Laufwerkstypen. Natürlich gibt es auch andere Verwendungsmöglichkeiten.

 

Rückgabe Konstanten:

1
2
3
4
56
7
Private Const DRIVE_UNKNOWN = &H0     ' unbekannter Laufwerkstyp
Private Const DRIVE_NO_ROOT_DIR = &H1 ' kein Hauptverzeichnis
Private Const DRIVE_REMOVABLE = &H2   ' Wechselmedium
Private Const DRIVE_FIXED = &H3       ' Festplatte
Private Const DRIVE_REMOTE = &H4      ' NetzwerklaufwerkPrivate Const DRIVE_CDROM = &H5       ' CD/DVD Laufwerk
Private Const DRIVE_RAMDISK = &H6     ' RAM-Disk

 

Einbinden der Win API Funktion GetDriveTypeA bzw. GetDriveTypeW als GetDriveTypeAPI aus der Kernel32.Dll:

1
Private Declare Function GetDriveTypeAPI Lib "kernel32" Alias "GetDriveTypeA" (ByVal nDrive As String) As Long

 

GetDriveTypeA bzw. GetDriveTypeW erwartet 1 Parameter:

lpRootPathName: Das Wurzelverzeichnis (mit abschließenen Backslash) des Laufwerks für den der Lauwerkstyp ermittelt werden soll. Wird NULL übergeben wird das Wurzelverzeichnis des aktuellen Verzeichnises verwendet.

 

Rückgabewert:

Folgende Liste zeigt die möglichen Werte und Ihre Bedeutungen an, welche die Funktion zurückliefert.

 

Konstante Wert Beschreibung
DRIVE_UNKNOWN &H0 unbekannter Laufwerkstyp
DRIVE_NO_ROOT_DIR &H1 kein Hauptverzeichnis
DRIVE_REMOVABLE &H2 Wechselmedium
DRIVE_FIXED &H3  Festplatte
DRIVE_REMOTE &H4 Netzwerklaufwerk
DRIVE_CDROM &H5    CD/DVD Laufwerk
DRIVE_RAMDISK &H6 RAM-Disk

 

 

 

 

 

 

 

 

 

Deklaration eines Enums um nicht direkt mit den Konstanten arbeiten zu müssen.

1
2
3
4
56
7
8
9
Public Enum enDriveType
    vbDriveTypeUnknown = DRIVE_UNKNOWN
    vbDriveTypeNoRootDir = DRIVE_NO_ROOT_DIR
    vbDriveTypeRemoveable = DRIVE_REMOVABLE
    vbDriveTypeFixed = DRIVE_FIXED    vbDriveTypeRemote = DRIVE_REMOTE
    vbDriveTypeCDROM = DRIVE_CDROM
    vbDriveTypeRamDisk = DRIVE_RAMDISK
End Enum

 

VB Funktion
1
2
3
4
Public Function GetDriveType(ByVal Drive As String) As enDriveType
 
GetDriveType = GetDriveTypeAPI(Left$(Drive, 1) & ":\")
End Function

 

Hinweis:

Der Laufwerksbuchstabe kann auch als komplette Pfadangabe übergeben werden. Die Funktion ermittelt dann das Wurzelverzeichnis des Laufwerks automatisch.

Downloads

Suchbegriffe

VB6, Visual Basic, GetDriveType, GetDriveTypeA, GetDriveTypeW

Suche