[COLOR=blue]Option Explicit
Public Declare Function [/COLOR]GetVersionExA [COLOR=blue]Lib [/COLOR]"kernel32" _
(lpVersionInformation [COLOR=blue]As [/COLOR]OSVERSIONINFO) As [COLOR=blue]Integer
Public Type [/COLOR]OSVERSIONINFO
dwOSVersionInfoSize [COLOR=blue]As Long
[/COLOR]dwMajorVersion [COLOR=blue]As Long
[/COLOR]dwMinorVersion [COLOR=blue]As Long
[/COLOR]dwBuildNumber [COLOR=blue]As Long
[/COLOR]dwPlatformId [COLOR=blue]As Long
[/COLOR]szCSDVersion [COLOR=blue]As String [/COLOR]* 128
[COLOR=blue]End Type
Public Const [/COLOR]VER_PLATFORM_WIN32s = 0 [COLOR=green]' Win32s on Windows 3.1
[/COLOR][COLOR=blue]Public Const [/COLOR]VER_PLATFORM_WIN32_WINDOWS = 1 [COLOR=green]' Windows 95, Windows 98, or Windows Me
[/COLOR][COLOR=blue]Public Const [/COLOR]VER_PLATFORM_WIN32_NT = 2 [COLOR=green]' Windows NT, Windows 2000, Windows XP, or Windows Server 2003 family.
[FONT=monospace]
' Major Minor
' OS Platform Version Version Build
' Windows 95 1 4 0
' Windows 98 1 4 10 1998
' Windows 98SE 1 4 10 2222
' Windows Me 1 4 90 3000
' NT 3.51 2 3 51
' NT 2 4 0 1381
' 2000 2 5 0
' XP 2 5 1 2600
' Server 2003 2 5 2
[/FONT]
[/COLOR][COLOR=blue]Public Function [/COLOR]getVersion() [COLOR=blue]As String
Dim [/COLOR]OSInfo [COLOR=blue]As [/COLOR]OSVERSIONINFO
[COLOR=blue]Dim [/COLOR]retvalue [COLOR=blue]As Integer
[/COLOR]OSInfo.dwOSVersionInfoSize = 148
OSInfo.szCSDVersion = Space$(128)
retvalue = GetVersionExA(OSInfo)
[COLOR=blue]With [/COLOR]OSInfo
[COLOR=blue]Select Case [/COLOR].dwPlatformId
[COLOR=blue]Case [/COLOR]VER_PLATFORM_WIN32s [COLOR=green]' Win32s on Windows 3.1
[/COLOR]getVersion = "Windows 3.1"
[COLOR=blue]Case [/COLOR]VER_PLATFORM_WIN32_WINDOWS [COLOR=green]' Windows 95, Windows 98,
[/COLOR][COLOR=blue]Select Case [/COLOR].dwMinorVersion [COLOR=green]' or Windows Me
[/COLOR][COLOR=blue]Case [/COLOR]0
getVersion = "Windows 95"
[COLOR=blue]Case [/COLOR]10
[COLOR=blue]If [/COLOR](OSInfo.dwBuildNumber [COLOR=blue]And [/COLOR]&HFFFF&) = 2222 [COLOR=blue]Then
[/COLOR]getVersion = "Windows 98SE"
[COLOR=blue]Else
[/COLOR]getVersion = "Windows 98"
[COLOR=blue]End If
Case [/COLOR]90
getVersion = "Windows Me"
[COLOR=blue]End Select
Case [/COLOR]VER_PLATFORM_WIN32_NT [COLOR=green]' Windows NT, Windows 2000, Windows XP,
[/COLOR][COLOR=blue]Select Case [/COLOR].dwMajorVersion [COLOR=green]' or Windows Server 2003 family.
[/COLOR][COLOR=blue]Case [/COLOR]3
getVersion = "Windows NT 3.51"
[COLOR=blue]Case [/COLOR]4
getVersion = "Windows NT 4.0"
[COLOR=blue]Case [/COLOR]5
[COLOR=blue]Select Case [/COLOR].dwMinorVersion
[COLOR=blue]Case [/COLOR]0
getVersion = "Windows 2000"
[COLOR=blue]Case [/COLOR]1
getVersion = "Windows XP"
[COLOR=blue]Case [/COLOR]2
getVersion = "Windows Server 2003"
[COLOR=blue]End Select
End Select
Case Else
[/COLOR]getVersion = "Failed"
[COLOR=blue]End Select
End With
End Function [/COLOR]