Betriebssystemerkennung mit VB .NET
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