Rubrik: System/Windows · Sonstiges | VB-Versionen: VB5, VB6 | 12.05.05 |
Betriebssystem und SevicePack per WMI ermitteln Dieser Tipp zeigt, wie sich das Betriebssystem und evtl. installierte ServicePack per WMI ermitteln lässt. | ||
Autor: Dieter Otter | Bewertung: | Views: 16.833 |
www.tools4vb.de | System: Win9x, WinNT, Win2k, Win8, Win10, Win11 | Beispielprojekt auf CD |
Heute zeigen wir Ihnen eine Möglichkeit das Betriebssystem, sowie ein evtl. installiertes ServicePack per WMI zu ermitteln.
Fügen Sie hierzu nachfolgenden Code in ein Modul:
Option Explicit ' Betriebssysteme Private Enum WMI_OSTYPE OS_WIN3x = 15 OS_WIN95 = 16 OS_WIN98 = 17 OS_WINNT = 18 OS_WINCE = 19 End Enum
Public Function GetOSVersionAndSP(ByRef OSVersion As String, _ ByRef ServicePack As String) As Boolean ' Betriebssystem und installiertes Service Pack ermitteln Dim oWMI As Object Dim oSystems As Object Dim oSystem As Object On Error Resume Next ' WMI-Abfrage Set oWMI = GetObject("WinMgmts:/root/cimv2") If Err.Number <> 0 Then Exit Function ' Betriebssystem-Objekt Set oSystems = oWMI.ExecQuery("SELECT * FROM Win32_OperatingSystem") For Each oSystem In oSystems ' Betriebssystem und ServicePack auslesen With oSystem If .OSType >= OS_WIN95 And .OSType <= OS_WINCE Then ' Windowsbetriebssystem OSVersion = oSystem.Caption ServicePack = oSystem.CSDVersion If Len(ServicePack) = 0 Then ServicePack = "unbekannt" GetOSVersionAndSP = True End If End With Next ' Objekte zerstören Set oSystem = Nothing Set oSystems = Nothing Set oWMI = Nothing On Error GoTo 0 End Function
Aufrufbeispiel:
Dim sOSType As String Dim sServicePack As String If GetOSVersionAndSP(sOSType, sServicePack) Then MsgBox "Betriebssystem: " & sOSType & vbCrLf & _ "Service Pack: " & sServicePack Else MsgBox "Entweder kein WMI installiert oder kein Windows-Betriebssystem!" End If