All pastes #157423 Raw Edit

Stuff

public text v1 · immutable
·published 2006-09-01 16:00 UTC
rendered paste body
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