Private Declare Function GetVersionExA Lib "kernel32" (lpVersionInformation As OSVERSIONINFO) As Integer
Private Type OSVERSIONINFO
dwOSVersionInfoSize As Long
dwMajorVersion As Long
dwMinorVersion As Long
dwBuildNumber As Long
dwPlatformId As Long
szCSDVersion As String * 128
End Type
'-----------
Function GetSystemOS()
Dim OSinfo As OSVERSIONINFO
Dim RetValue As Integer
Dim ID As String
OSinfo.dwOSVersionInfoSize = 148
OSinfo.szCSDVersion = Space$(128)
RetValue = GetVersionExA(OSinfo)
With OSinfo
Select Case .dwPlatformId
Case 1
Select Case .dwMinorVersion
Case 0
ID = "Windows 95"
Case 10
If .dwBuildNumber >= 2183 Then
ID = "Windows 98 SE"
Else
ID = "Windows 98"
End If
Case 90
ID = "Windows Millennium Edition"
End Select
Case 2
Select Case .dwMajorVersion
Case 3
ID = "Windows NT 3.51"
Case 4
ID = "Windows NT 4.0"
Case 5
If .dwMinorVersion = 0 Then
ID = "Windows 2000"
ElseIf .dwMinorVersion = 1 Then
ID = "Windows XP"
Else
ID = "Windows Server 2003"
End If
End Select
Case Else
ID = "Unknown OS"
End Select
GetSystemOS = ID & " Version " & .dwMajorVersion & "." & .dwMinorVersion & "(Build " & .dwBuildNumber & ")"
End With
End Function