Veröffentlicht: 12. Jun 2003 | Aktualisiert: 24. Jun 2004
Von Mathias Schiffer
Dieser MSDN Quickie zeigt Ihnen, wie Sie aus Visual Basic .NET heraus ermitteln, auf welcher Windowsversion Ihre Anwendung abläuft.
Das .NET Framework macht es einfach, die Versionsnummer des eingesetzten Betriebssystems zu ermitteln: Hierfür steht die Klasse OperatingSystem im Namespace System zur Verfügung. Neben der Versionsnummer selber benötigen Sie weiterhin die Information, ob ein DOS- ein oder NT-basierendes Windows eingesetzt wird - beide Informationen erhalten Sie durch Abfrage der Eigenschaften Version.Major, Version.Minor und Platform der Klasse.
Um ein Objekt vom Typ OperatingSystem zu erhalten, das mit den Angaben über das verwendete Betriebssystem gefüllt ist, fragen Sie die System.Environment-Eigenschaft OSVersion ab.
' Informationen über das verwendete Betriebssystem ermitteln
Dim OSInfo As System.OperatingSystem _
= System.Environment.OSVersion
Haben Sie diese Kenndaten in Erfahrung gebracht, fehlt zur Entschlüsselung "nur" noch eine Zuordnung der verschiedenen möglichen Angaben zu den existierenden Windows-Versionen. Die nachfolgende Tabelle stellt diese Zuordnung zur Verfügung (da Windows 95 und Windows NT 3.51 das .NET Framework nicht unterstützen, vermissen Sie diese beiden Varianten in der Tabelle nicht zufällig).
| |
Windows 98
|
Windows Me
|
Windows NT 4.0
|
Windows 2000
|
Windows XP
|
Windows Server 2003
|
|
Platform
|
1
|
1
|
2
|
2
|
2
|
2
|
|
Version.Major
|
4
|
4
|
4
|
5
|
5
|
5
|
|
Version.Minor
|
10
|
90
|
0
|
0
|
1
|
2
|
Abschließend soll ein sehr einfacher Modul-Beispielcode ein mögliches Vorgehen beschreiben, um auf dieser Basis dem Anwender den Namen seiner Windows-Version zu präsentieren:
Module Module1
Sub Main()
MsgBox("Der Name Ihrer Windows-Version lautet" _
& vbNewLine & GetVersionString())
End Sub
Public Function GetVersionString() As String
' Informationen über das verwendete Betriebssystem ermitteln
Dim OSInfo As System.OperatingSystem _
= System.Environment.OSVersion
With OSInfo
MsgBox(.Version.Revision.ToString())
Select Case .Platform
Case .Platform.Win32Windows
' Windows 98 / 98SE oder Windows Me
' (Windows 95 unterstützt .NET nicht)
Select Case .Version.Minor
Case 10
GetVersionString = "Windows 98"
Case 90
GetVersionString = "Windows Me"
End Select
Case .Platform.Win32NT
' Windows NT 4.0, 2000, XP oder Server 2003
' (Windows NT 3.51 unterstützt .NET nicht)
Select Case .Version.Major
Case 4
GetVersionString = "Windows NT 4.0"
Case 5
Select Case .Version.Minor
Case 0 : GetVersionString = "Windows 2000"
Case 1 : GetVersionString = "Windows XP"
Case 2 : GetVersionString = "Windows Server 2003"
End Select
End Select
Case Else
GetVersionString = "Unbekannte Windows-Version"
End Select
End With
End Function
End Module