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