VB-Homepage Tipp 344

Laufwerksinformationen

Nicht der freie oder belegte Speicherplatz soll Inhalt dieses Tipps sein, sondern die Möglichkeit zu ermitteln, wie der Datenträger heißt, welche Serialnumber er hat und welches Dateisystem auf diesem eingerichtet ist.

1.
Allgemein/Deklarationen

Private Declare Function GetVolumeInformation Lib "kernel32" Alias "GetVolumeInformationA" (ByVal lpRootPathName As String, ByVal lpVolumeNameBuffer As String, ByVal nVolumeNameSize As Long, lpVolumeSerialNumber As Long, lpMaximumComponentLength As Long, lpFileSystemFlags As Long, ByVal lpFileSystemNameBuffer As String, ByVal nFileSystemNameSize As Long) As Long

Const GETDI_SERIAL = 1
Const GETDI_LABEL = 2
Const GETDI_TYPE = 3

2.
Fügen Sie der Form Ihres Demoprojekts einen CommandButton (Command1) zum Starten der Auswertung und eine Listbox (List1) zur Ergebnisanzeige hinzu.

3.
Private Sub Command1_Click()
On Error Resume Next
List1.Clear

Laufwerke = "BCDEFGHIJKLMNOPQRSTUVWXYZ"            'Zu prüfende Laufwerke

For i = 1 To Len(Laufwerke)
        'um nur vorhandene Laufwerke abzubilden
        If Not GetDriveInfo(Mid(Laufwerke, i, 1) & ":\", GETDI_SERIAL) = 0 Then
              List1.AddItem "Laufwerk " & Mid(Laufwerke, i, 1) & ":\"
              List1.AddItem "°°°°°°°°°°°°°°°°°°°"
              List1.AddItem "Serialnumber" & vbTab & ":" & vbTab &
                     GetDriveInfo(Mid(Laufwerke, i, 1) & ":\", GETDI_SERIAL)
              List1.AddItem "Datenträgername" & vbTab & ":" & vbTab &
                     GetDriveInfo(Mid(Laufwerke, i, 1) & ":\", GETDI_LABEL)
              List1.AddItem "Dateisystem" & vbTab & ":" & vbTab &
                     GetDriveInfo(Mid(Laufwerke, i, 1) & ":\", GETDI_TYPE)
              List1.AddItem "--------------------------------------------------"
              List1.AddItem ""
        End If
Next i

End Sub

4.
Herzstück dieses Tipps ist eine Prozedur, die die drei Angaben für das übergebene Laufwerk ermittelt.
Allgemein/GetDriveInfo
Function GetDriveInfo(strDrive As String, iType As Integer)

Dim SerialNum As Long
Dim strLabel As String
Dim strType As String
Dim lRetVal As Long

strLabel = Space(256)
strType = Space(256)

lRetVal = GetVolumeInformation(strDrive, strLabel, Len(strLabel), SerialNum, 0, 0, strType, Len(strType))

Select Case iType
    Case Is = 1
          GetDriveInfo = CStr(SerialNum)
    Case Is = 2
          GetDriveInfo = strLabel
    Case Is = 3
          GetDriveInfo = strType
End Select

End Function

5.
Starten Sie Ihr Demoprojekt mit F5 und Sie können nach einem Click auf den CommandButton die Angaben für die Laufwerke in der Listbox einsehen.


Tipp-Download

Quelle :

Zurück zur Übersichtsseite