Tipp 0167 Laufwerkstypen ermitteln (WMI)
Autor/Einsender:
Datum:
  Michael Werner
18.08.2007
Entwicklungsumgebung:   VB.Net 2005
Framework:   2.0
Mit WMI (Windows Management Instrumentation) können die vorhandenen Lauwerkstypen ermittelt werden. WMI benötigt zunächst einen Verweis auf die .Net-Komponente System.Management. und zudem sollte der Namespace importiert werden.
Über Instanzen von ManagementObjectSearcher, ManagementObjectCollection, ManagementObject und der Query-Übergabe an ManagementObjectSearcher
Management.ManagementObjectSearcher("SELECT * FROM Win32_LogicalDisk")
können nun in For Each-Schleifen alle, oder gezielt nur bestimmte Laufwerkstypen und ihre Laufwerksnamen ermittelt werden. Zum Auslesen werden dem jeweiligen ManagementObjectSearcher-Objekt (logisches Laufwerk) die festgelegten Attribute "Name" und "Description" übergeben.
 
Imports System.Management

'...

Public Sub GetAllDrivesAndTypes()
  Dim mos As Management.ManagementObjectSearcher
  Dim moc As Management.ManagementObjectCollection
  Dim disc As Management.ManagementObject
  Dim drive As String = String.Empty

  mos = New Management.ManagementObjectSearcher( _
                  "SELECT * FROM Win32_LogicalDisk")
  moc = mos.Get()
  ListBox1.Items.Clear()

  For Each disc In moc
    ListBox1.Items.Add(disc("Name").ToString & " " & _
        disc.Properties("Description").Value.ToString())
  Next

  moc.Dispose()
  mos.Dispose()
End Sub

Public Sub GetAllDrivesOfType(ByVal type As String)
  Dim mos As Management.ManagementObjectSearcher
  Dim moc As Management.ManagementObjectCollection
  Dim disc As Management.ManagementObject
  Dim drive As String = String.Empty

  mos = New Management.ManagementObjectSearcher( _
                  "SELECT * FROM Win32_LogicalDisk")
  moc = mos.Get()
  ListBox1.Items.Clear()

  For Each disc In moc
    If disc.Properties("Description").Value.ToString() = type Then
       ListBox1.Items.Add(disc("Name").ToString & " " & _
           disc.Properties("Description").Value.ToString())
    End If
  Next

  moc.Dispose()
  mos.Dispose()
End Sub

  'ComboBox1 füllen mit Laufwerken und Laufwerkstypen
Public Sub GetAllTypesOfDrives()
  Dim mos As Management.ManagementObjectSearcher
  Dim moc As Management.ManagementObjectCollection
  Dim disc As Management.ManagementObject

  Dim drive As String = String.Empty

  mos = New Management.ManagementObjectSearcher( _
            "SELECT * FROM Win32_LogicalDisk")
  moc = mos.Get()
  ComboBox1.Items.Clear()

  For Each disc In moc
    Dim item As String = _
        disc.Properties("Description").Value.ToString()
    'Keine Doppelte
    If Not IsDrinCombo(item) Then
       ComboBox1.Items.Add(item)
    End If
  Next

  moc.Dispose()
  mos.Dispose()
End Sub

 'Combobox auf Doppelte prüfen
Private Function IsDrinCombo(ByVal item As String) As Boolean
  For Each itm As String In ComboBox1.Items
    If itm = item Then
      Return True
    End If
  Next
End Function
 
Weitere Links zum Thema
Freien Laufwerksplatz ermitteln (WMI)

Windows-Version
98/SE
ME
NT
2000
XP
Vista
Win 7


Download  (17,7 kB) Downloads bisher: [ 344 ]

Vorheriger Tipp Zum Seitenanfang Nächster Tipp

Startseite | Tipps | Projekte | Tutorials | Bücherecke | VB-/VBA-Tipps | API-Referenz | Komponenten | VB.Net-Forum | VB/VBA-Forum | DirectX-Forum | Foren-Archiv | DirectX | Chat | Spielplatz | Links | Suchen | Stichwortverzeichnis | Feedback | Impressum

Seite empfehlen Bug-Report
Letzte Aktualisierung: Samstag, 14. Januar 2012