![]() |
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
|
|
|
|
|
MsgBox "Aktuelles Betriebssystem: " & GetWinPlatform
|
|
|
|
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.
|
|
|
|
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: [ 3805 ]
|
|
|