VB.net – Windows Version erkennen
Wenn man ein Programm mit Vb.net erstellt, ist es in den meisten Fällen nicht notwendig, die Windows Version abzufragen, auf welchen das Programm ausgeführt wird. Doch programmiert man ein Tool/Programm was auf spezielle Funktionen zurückgreift, die nur in von einer bestimmten Windows Version unterstützt werden, so ist es ganz praktisch beim Programmstart die Version in Erfahrung zu bringen.
Da .net hier sehr viele Funktionen bietet um Systeminformationen abzufragen, ist dies mit einer kleinen Funktion sehr schnell erledigt.
Über den System Zugriff: System.Environment.OSVersion erhält man als Rückgabewert eine Nummer. Entsprechende Unterabfragen wie platform, major und minor liefern weitere Zahlen, mit welchen sich durch Kombination das Betriebssystem ermitteln lässt.
In der MSDN Online Bibliothek kann man nachlesen welche Nummer/Kombination welchen Betriebssystem entspricht.
Windows 98 | Windows Me | Windows NT 4.0 | Windows 2000 | Windows XP | Windows Server 2003 | Windows Vista /2008 Server | Windows 7 | |
Platform | 1 | 1 | 2 | 2 | 2 | 2 | 2 | 2 |
Version.Major | 4 | 4 | 4 | 5 | 5 | 5 | 6 | 6 |
Version.Minor | 10 | 90 | 0 | 0 | 1 | ? | ? |
In der Funktion lassen sich über Select Case Anweisungen das Betriebssystem “filtern”.
Public Function func_read_windows_version
Funktion definieren
Dim os_version As System.OperatingSystem = System.Environment.OSVersion
Dim os_is_version As String
OS Version auslesen und in eine Variable speichern, os_is_version als Rückgabevariable definieren
With os_version
Select Case .platform
Case .platform.win32windows
Select Case (.Version.Minor)
Case 0
os_is_version = "Windows 95"
Case 10
If .version.revision.tostring() = "2222A" Then
os_is_version = "Windows 98 - Second Edition"
Else
os_is_version = "Windows 98"
End If
Case 90
os_is_version = "Windows Me"
End Select
Platform bestimmen = DOS Basis
Case .platform.win32nt
Select Case (.Version.Major)
Case 3
os_is_version = "Windows NT 3.51"
Case 4
os_is_version = "Windows NT 4.0"
Case 5
Select Case (.Version.Minor)
Case 0
os_is_version = "Windows 2000"
Case 1
os_is_version = "Windows XP"
Case 2
os_is_version = "Windows 2003 Server"
End Select
End Select
End Select
End With
Platform bestimmen = NT Basis
return os_is_version
End Function
Rückgabe der Version
Die komplette Funktion sieht wie folgt aus:
Public Function func_read_windows_version
Dim os_version As System.OperatingSystem = System.Environment.OSVersion
Dim os_is_version As String
With os_version
Select Case .platform
Case .platform.win32windows
Select Case (.Version.Minor)
Case 0
os_is_version = "Windows 95"
Case 10
If .version.revision.tostring() = "2222A" Then
os_is_version = "Windows 98 - Second Edition"
Else
os_is_version = "Windows 98"
End If
Case 90
os_is_version = "Windows Me"
End Select
Case .platform.win32nt
Select Case (.Version.Major)
Case 3
os_is_version = "Windows NT 3.51"
Case 4
os_is_version = "Windows NT 4.0"
Case 5
Select Case (.Version.Minor)
Case 0
os_is_version = "Windows 2000"
Case 1
os_is_version = "Windows XP"
Case 2
os_is_version = "Windows 2003 Server"
End Select
End Select
End Select
End With
return os_is_version
End Function