Rubrik: Dateisystem · Laufwerke | VB-Versionen: VB4, VB5, VB6 | 01.11.00 |
Alle logischen Laufwerke ermitteln Möchten Sie wissen, welche logischen Laufwerke auf dem System existieren, so können Sie diese mit der hier vorgestellten Routine ermitteln. | ||
Autor: Dieter Otter | Bewertung: | Views: 30.071 |
www.tools4vb.de | System: Win9x, WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 | Beispielprojekt auf CD |
Möchten Sie wissen, welche logischen Laufwerke auf dem System existieren, so können Sie diese mit nachfolgender Routine ermitteln. Zusätzlich zu den Laufwerksbuchstaben wird noch der Typ des Laufwerks ermittelt (Festplatte, Diskette, Netzlaufwerk, ...).
Hier der Quellcode:
' Zunächst die benötigten API-Deklarationen Declare Function GetDriveType Lib "kernel32" _ Alias "GetDriveTypeA" ( _ ByVal nDrive As String) As Long Declare Function GetLogicalDriveStrings Lib "kernel32" Alias "GetLogicalDriveStringsA" (ByVal nBufferLength As Long,_ ByVal lpBuffer As String) As Long ' Konstanten: Laufwerks-Typen Const DRIVE_REMOVABLE = 2 Const DRIVE_FIXED = 3 Const DRIVE_REMOTE = 4 Const DRIVE_CDROM = 5 Const DRIVE_RAMDISK = 6 ' Die nachfolgende Routine ermittelt anhand des ' Laufwerkbuchstabens den Typ des Laufwerks im Klartext Public Function LaufwerksTyp(ByVal Drive As String) As String ' Der Parameter Drive gibt das Laufwerk an ' z.B. A:, C:, ... Dim lType As Long lType = GetDriveType(Drive) Select Case lType Case DRIVE_REMOVABLE LaufwerksTyp = "Wechseldatenträger" Case DRIVE_FIXED LaufwerksTyp = "Festplatte" Case DRIVE_REMOTE LaufwerksTyp = "Netzlaufwerk" Case DRIVE_CDROM LaufwerksTyp = "CD-ROM" Case DRIVE_RAMDISK LaufwerksTyp = "RAM-Disk" End Select End Function ' Die nachfolgende Routine ermittelt alle verfügbaren Laufwerke ' und die dazugehörigen Laufwerkstypen Private Sub GetAllDrives() Dim sBuffer As String * 255 Dim sDrives As String Dim lResult As Long Dim sDrive As String Dim sPos As Integer lResult = GetLogicalDriveStrings(Len(sBuffer), sBuffer) sDrives = Left$(sBuffer, lResult) While Len(sDrives) > 0 sPos = InStr(sDrives, Chr$(0)) sDrive = Left$(sDrives, sPos - 1) sDrives = Mid$(sDrives, sPos + 1) Debug.Print Left$(sDrive, 2);" [";LaufwerksTyp(sDrive);"]" Wend End Sub