Zum Thema "Windows-Version ermitteln" gibt es bereits zahlreiche Tipps. Die meisten Codes hierzu können aber nicht die korrekte Windows-Version zurückgeben, wenn die eigene Anwendung im Kompatibilitätsmodus läuft, d.h. wenn in den Eigenschaften der ausführbaren Datei der Kompatibilitätsmodus auf eine bestimmte (frühere) Windows-Version festgelegt ist. Auch wird von den meisten Funktionen das Betriebssystem Windows 8.1 bzw. Windows 10 nicht korrekt ermittelt. Es erfolgt immer die Rückmeldung, es handele sich um Windows 8 - auch wenn man die Anwendung unter Windows 10 ausführt. Nachfolgende Funktion ermittelt auch bei eingestelltem Kompatibilitätsmodus bzw. auch unter Windows 8.1/Windows 10 die korrekte Windows-Version. Hierzu lesen wir die Version direkt aus per WMI aus. ' Ermittelt die Windows-Version per WMI ' Optional: sVersion - exakte Windows-Versionsnummer ' Bsp.: 6.2.9200 Public Function OSVersionWMI(Optional ByRef sVersion As String) As String Dim oWMI As Object Dim oSystem As Object Dim SQL As String On Error GoTo ErrHandler ' Abfrage SQL = "SELECT * FROM Win32_OperatingSystem" ' WMI-Objekt erstellen und Abfrage ausführen Set oWMI = GetObject("winmgmts:").ExecQuery(SQL) For Each oSystem In oWMI OSVersionWMI = Trim$(oSystem.Caption) ' Windows-Version im Klartext sVersion = Trim$(oSystem.Version) ' exakte Version-Nr. Exit For Next Set oSystem = Nothing Set oWMI = Nothing On Error GoTo 0 Exit Function ErrHandler: Set oSystem = Nothing Set oWMI = Nothing End Function Aufrufbeispiel: Dim sVersion As String Dim sWinVersion As String sWinVersion = OSVersionWMI(sVersion) MsgBox "Aktuelle Windows-Version:" & vbCrLf & _ sWinVersion & vbCrLf & "Version: " & sVersion |