Tipp 0003 Aktuelles Betriebssystem ermitteln
Autor/Einsender:
Datum:
  Detlev Schubert
14.02.2005 (Update)
Entwicklungsumgebung:   VB 5
Spätestens seit dem Erscheinen von Windows 98 ist sicher auch dem letzten Programmierer klar geworden, dass Windows nicht immer Windows-kompatibel ist. In einem Programm muss man nun je nach Betriebssystem teilweise unterschiedlich reagieren können. Die Voraussetzung dafür ist natürlich, zunächst einmal in Erfahrung zu bringen, unter welchem Betriebssystem das Programm läuft. Die API stellt hierfür die Funktion GetVersionEx sowie den Typ OSVERSIONINFO zur Verfügung.
Um diese Struktur nutzen zu können, muss zuerst mit dem Parameter dwOSVersionInfoSize die Größe der Struktur übergeben werden, was mit der VB-Anweisung Len geschieht. Nun kann diese Variable an GetVersionEx übergeben werden, um die gewünschten Informationen zu erhalten.
Code im Codebereich des Moduls
 
Option Explicit

Private Declare Function GetVersionEx Lib "kernel32" Alias _
        "GetVersionExA" (lpVersionInformation As OSVERSIONINFO) _
        As Long

Private Type OSVERSIONINFO
  dwOSVersionInfoSize As Long
  dwMajorVersion      As Long
  dwMinorVersion      As Long
  dwBuildNumber       As Long
  dwPlatformId        As Long
  szCSDVersion        As String * 128
End Type

Private Const VER_PLATFORM_WIN32_WINDOWS = 1
Private Const VER_PLATFORM_WIN32_NT = 2

Public Function GetWinPlatform() As String
 Dim strPlatForm  As String
 Dim osvi         As OSVERSIONINFO

  osvi.dwOSVersionInfoSize = Len(osvi)
  GetVersionEx osvi

  strPlatForm = "Unbekanntes Betriebssystem"
  With osvi
    If .dwPlatformId = VER_PLATFORM_WIN32_WINDOWS Then
       If .dwMinorVersion = 0 Then
          strPlatForm = "Windows 95"
          If .szCSDVersion = "B" Then
             strPlatForm = strPlatForm & " OSR2"
          Else
             strPlatForm = strPlatForm & Left$(.szCSDVersion, 2)
          End If
       ElseIf .dwMinorVersion = 10 Then
          strPlatForm = "Windows 98"
          If .szCSDVersion = "A" Then
             strPlatForm = strPlatForm & " SE"
          End If
       ElseIf .dwMinorVersion = 90 Then
          strPlatForm = "Windows ME"
       Else
          strPlatForm = "Win 32s"
       End If
    ElseIf .dwPlatformId = VER_PLATFORM_WIN32_NT Then
       If .dwMajorVersion = 4 Then
          strPlatForm = "Windows NT"
       ElseIf .dwMajorVersion = 5 Then
         If .dwBuildNumber = "2195" Then
           strPlatForm = "Windows 2000"
         ElseIf .dwBuildNumber = "2600" Then
           strPlatForm = "Windows XP"
         End If
       End If
    End If
  End With

  GetWinPlatform = strPlatForm
End Function
 
Beispiel-Aufruf
 
MsgBox "Aktuelles Betriebssystem: " & GetWinPlatform
 
Hinweis für VBA-Anwender
Die im Download befindliche *.bas-Datei kann für die Verwendung in einem (Office-)Programm im VB-Editor des entsprechenden Programms importiert werden. Ein Import der im Download enthaltenen *.frm-Datei ist nicht möglich.
Weitere Links zum Thema
Startmodus des Betriebssystems ermitteln

Windows-Version
95
98/SE
ME
NT
2000
XP
Vista
Win 7
VB-Version
VBA 5
VBA 6
VB 4/16
VB 4/32
VB 5
VB 6


Download  (3,3 kB) Downloads bisher: [ 3693 ]

Vorheriger Tipp Zum Seitenanfang Nächster Tipp

Startseite | Projekte | Tutorials | API-Referenz | VB-/VBA-Tipps | Komponenten | Bücherecke | VB/VBA-Forum | VB.Net-Forum | DirectX-Forum | Foren-Archiv | DirectX | VB.Net-Tipps | Chat | Spielplatz | Links | Suchen | Stichwortverzeichnis | Feedback | Impressum

Seite empfehlen Bug-Report
Letzte Aktualisierung: Montag, 20. Juni 2011