Rubrik: System/Windows · Sonstiges | VB-Versionen: VB4, VB5, VB6 | 13.10.01 |
Welches System ist installiert? Windows 95, Windows 98, Windows ME, Windows NT, Windows 2000, Windows XP? Das ist hier die Frage! | ||
Autor: Dieter Otter | Bewertung: | Views: 13.690 |
www.tools4vb.de | System: Win9x, WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 | Beispielprojekt auf CD |
Windows 95, Windows 98, Windows ME, Windows NT, Windows 2000, Windows XP oder Windows Vista?
Das ist hier die Frage!
' zunächst die benötigten API-Deklarationen 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 Declare Function GetVersionEx Lib "kernel32" _ Alias "GetVersionExA" ( _ ByRef lpVersionInformation As OSVERSIONINFO) As Long Private Const VER_PLATFORM_WIN32_NT = 2 Private Const VER_PLATFORM_WIN32_WINDOWS = 1
' Windows 95? Public Function IsWin95() As Boolean Dim OSVersion As OSVERSIONINFO With OSVersion .dwOSVersionInfoSize = Len(OSVersion) GetVersionEx OSVersion IsWin95 = (.dwPlatformID = VER_PLATFORM_WIN32_WINDOWS) AND _ (.dwMajorVersion = 4 And .dwMinorVersion = 0) End With End Function
' Windows 98? Public Function IsWin98() As Boolean Dim OSVersion As OSVERSIONINFO With OSVersion .dwOSVersionInfoSize = Len(OSVersion) GetVersionEx OSVersion IsWin98 = (.dwPlatformID = VER_PLATFORM_WIN32_WINDOWS) And _ ((.dwMajorVersion > 4) Or _ (.dwMajorVersion = 4 And .dwMinorVersion = 10)) End With End Function
' Windows ME? Public Function IsWinME() As Boolean Dim OSVersion As OSVERSIONINFO With OSVersion .dwOSVersionInfoSize = Len(OSVersion) GetVersionEx OSVersion IsWinME = (.dwPlatformID = VER_PLATFORM_WIN32_WINDOWS) And _ (.dwMajorVersion = 4 And .dwMinorVersion = 90) End With End Function
' Windows NT? Public Function IsWinNT() As Boolean Dim OSVersion As OSVERSIONINFO With OSVersion .dwOSVersionInfoSize = Len(OSVersion) GetVersionEx OSVersion IsWinNT = (.dwPlatformID = VER_PLATFORM_WIN32_NT) And _ (.dwMajorVersion <= 4) End With End Function
Tipp-Update vom 16.02.09
Nachfolgend Änderungen an den Funktionen IsWin2000 und IsWinXP, sowie eine neue Funktion IsVista, damit der Code auch korrekt unter Windows Vista funktioniert.
' Windows 2000? Public Function IsWin2000() As Boolean Dim OSVersion As OSVERSIONINFO With OSVersion .dwOSVersionInfoSize = Len(OSVersion) GetVersionEx OSVersion IsWin2000 = (.dwPlatformID = VER_PLATFORM_WIN32_NT) And _ (.dwMajorVersion = 5 And .dwMinorVersion < 1) End With End Function
' Windows XP? Public Function IsWinXP() As Boolean Dim OSVersion As OSVERSIONINFO With OSVersion .dwOSVersionInfoSize = Len(OSVersion) GetVersionEx OSVersion IsWinXP = (.dwPlatformID = VER_PLATFORM_WIN32_NT) And _ (.dwMajorVersion = 5 And .dwMinorVersion >= 1) End With End Function
' Windows Vista? Public Function IsVista() As Boolean Dim OSVersion As OSVERSIONINFO With OSVersion .dwOSVersionInfoSize = Len(OSVersion) GetVersionEx OSVersion IsVista = (.dwPlatformID = VER_PLATFORM_WIN32_NT) And _ (.dwMajorVersion = 6) End With End Function