Help and Support
 

powered byLive Search

How to determine which 32-bit Windows version is being used

Article ID:189249
Last Review:September 3, 2004
Revision:3.0
This article was previously published under Q189249
On This Page

SUMMARY

An application may need to perform tasks differently depending on which operating system is running on the computer. This article shows, by example, how to differentiate between Microsoft Windows 95, Microsoft Windows 98, Microsoft Window NT 3.51, Microsoft Windows NT 4.0, Microsoft Windows 2000, and Microsoft Windows XP.

The Win32 GetVersionEx function returns information that a program can use to identify the operating system. Among those values are the major and minor revision numbers and a platform identifier. With the introduction of Windows 98, it now takes a more involved logical evaluation to determine which version of Windows is in use. The listing below provides the data needed to evaluate the OSVERSIONINFO structure populated by the GetVersionEx function:
Windows 95Windows 98Windows MeWindows NT 4.0Windows 2000Windows XP
PlatformID 1 1 1 2 2 2
Major Version 4 4 4 4 5 5
Minor Version 0 10 90 0 0 1

Back to the top

MORE INFORMATION

Step-by-step example

1.Start a new Standard EXE project in Visual Basic. Form1 is created by default.
2.From the Project menu, add a Standard Module to the project.
3.Insert the following code into Module1:
      Public Declare Function GetVersionExA Lib "kernel32" _
               (lpVersionInformation As OSVERSIONINFO) As Integer
 
            Public Type OSVERSIONINFO
               dwOSVersionInfoSize As Long
               dwMajorVersion As Long
               dwMinorVersion As Long
               dwBuildNumber As Long
               dwPlatformId As Long
               szCSDVersion As String * 128
            End Type
 
            Public Function getVersion() As String
               Dim osinfo As OSVERSIONINFO
               Dim retvalue As Integer
 
               osinfo.dwOSVersionInfoSize = 148
               osinfo.szCSDVersion = Space$(128)
               retvalue = GetVersionExA(osinfo)
 
               With osinfo
               Select Case .dwPlatformId
 
                Case 1
                
                    Select Case .dwMinorVersion
                        Case 0
                            getVersion = "Windows 95"
                        Case 10
                            getVersion = "Windows 98"
                        Case 90
                            getVersion = "Windows Millennium"
                    End Select
    
                Case 2
                    Select Case .dwMajorVersion
                        Case 3
                            getVersion = "Windows NT 3.51"
                        Case 4
                            getVersion = "Windows NT 4.0"
                        Case 5
                            If .dwMinorVersion = 0 Then
                                getVersion = "Windows 2000"
                            Else
                                getVersion = "Windows XP"
                            End If
                    End Select
    
                Case Else
                   getVersion = "Failed"
            End Select
 
               End With
            End Function

					
4.Add the following line of code to the Load event of Form1:
MsgBox GetVersion()
					
5.Run the project, and note that a message box displays the correct Windows version.

Back to the top

REFERENCES

For additional information, click the following article number to view the article in the Microsoft Knowledge Base:
92936 (http://support.microsoft.com/kb/92936/) How to get Windows 3.1 version number in VB with GetVersion

Back to the top


APPLIES TO
Microsoft Visual Basic 5.0 Learning Edition
Microsoft Visual Basic 6.0 Learning Edition
Microsoft Visual Basic 5.0 Professional Edition
Microsoft Visual Basic 6.0 Professional Edition
Microsoft Visual Basic 5.0 Enterprise Edition
Microsoft Visual Basic 6.0 Enterprise Edition
Microsoft Visual Basic 4.0 Standard Edition
Microsoft Visual Basic 4.0 Professional Edition
Microsoft Visual Basic for Applications 5.0

Back to the top

Keywords: 
kbhowto KB189249

Back to the top

Article Translations

 

Other Support Options

  • Need More Help?
    Contact a Support professional by Email, Online or Phone.
  • Customer Service
    For non-technical assistance with product purchases, subscriptions, online services, events, training courses, corporate sales, piracy issues, and more.
  • Newsgroups
    Pose a question to other users. Discussion groups and Forums about specific Microsoft products, technologies, and services.