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. |