vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#

https://www.vbarchiv.net
Rubrik: Dateisystem · Laufwerke   |   VB-Versionen: VB4, VB5, VB601.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 OtterBewertung:  Views:  30.071 
www.tools4vb.deSystem:  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



Anzeige

Kauftipp Unser Dauerbrenner!Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv  Vol.6
(einschl. Beispielprojekt!)

Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv!
- nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten
- Symbol-Galerie mit mehr als 3.200 Icons im modernen Look
Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m.
 
 
Copyright ©2000-2024 vb@rchiv Dieter OtterAlle Rechte vorbehalten.


Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.