Rubrik: Verschiedenes / Sonstiges | VB-Versionen: VB2008, VB2010, VB2012 | 31.12.14 |
Ermittlung des Computertyps Es wird eine Funktion gezeigt, die die Ermittlung des Chassis-Typs des Computers gestattet. | ||
Autor: Dietrich Herrmann | Bewertung: | Views: 5.991 |
ohne Homepage | System: Win7, Win8, Win10, Win11 | Beispielprojekt auf CD |
Wer eventuell für eine Anzeige den Chassis-Typ des Computers benötigt, kann diesen mit der nachfolgend gezeigten Funktion ermitteln.
Dazu braucht man zunächst eine Enumeration:
' die Chassistypen von Computern Public Enum ChassisTypes Other Unknown Desktop Low_Profile_Desktop Pizza_Box Mini_Tower Tower Portable Laptop Notebook Hand_Held Docking_Station All_in_One Sub_Notebook Space_Saving Lunch_Box Main_System_Chassis Expansion_Chassis SubChassis Bus_Expansion_Chassis Peripheral_Chassis Storage_Chassis Rack_Mount_Chassis Sealed_Case_PC End Enum
... und dann die Funktion:
''' <summary> ''' Ermittelt den Computertyp ''' </summary> ''' <returns>Feld mit den Chassisnamen</returns> Public Function GetModelType() As String() Dim objWMIService, objChassis, objItem As Object, i As Short Dim strComputer As String = "." Dim names() As String = [Enum].GetNames(GetType(ChassisTypes)) Dim res(0) As String objWMIService = GetObject("winmgmts:" _ & "{impersonationLevel=impersonate}!\\" _ & strComputer & "\root\cimv2") objChassis = objWMIService.ExecQuery _ ("Select * from Win32_SystemEnclosure") For Each objChassis In objChassis For Each objItem In objChassis.ChassisTypes res(i) = Replace(names(objItem - 1), "_", " ") ReDim Preserve res(i) ' Debug.Print("Chassis Type: " & res(i)) i += 1 Next Next Return res End Function
Einfach aufrufen:
Dim pcTypes() As String = GetModelType()
... und bspw. in einer ListBox anzeigen:
If pcTypes.Length > 0 Then ListBox1.Items.AddRange(pcTypes) End If