|
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
|
|
|
|
|
Windows-Version |
98/SE |
|
|
ME |
|
|
NT |
|
|
2000 |
|
|
XP |
|
|
Vista |
|
|
Win
7 |
|
|
|
|
Download (17,7
kB)
|
Downloads bisher: [ 433 ]
|
|
|