Get Windows Version

Ford-p

Active member
Joined
Mar 1, 2007
Messages
30
Programming Experience
Beginner
Hey,

I'm trying to find the Windows version of the PC my program is run on. So far I have found this:
VB.NET:
Public Function OSVersion() As String
        Dim objVer As OperatingSystem
        Dim strVer As String = ""

        objVer = System.Environment.OSVersion

        With objVer
            Select Case .Platform
                Case .Platform.Win32Windows
                    Select Case (.Version.Minor)
                        Case 0
                            strVer = "Microsoft Windows 95"
                        Case 10
                            If .Version.Revision.ToString() = "2222A" Then
                                strVer = "Microsoft Windows 98 Second Edition"
                            Else
                                strVer = "Microsoft Windows 98"
                            End If
                        Case 90
                            strVer = "Microsoft Windows ME"
                    End Select
                Case .Platform.Win32NT
                    Select Case (.Version.Major)
                        Case 3
                            strVer = "Microsoft Windows NT 3.51"
                        Case 4
                            strVer = "Microsoft Windows NT 4.0"
                        Case 5
                            If .Version.Minor = 0 Then
                                strVer = "Microsoft Windows 2000"
                            ElseIf .Version.Minor = 1 Then
                                strVer = "Microsoft Windows XP"
                            ElseIf .Version.Minor = 2 Then
                                strVer = "Microsoft Windows Server 2003"
                            Else 'Future version maybe update
                                'as needed
                                strVer = "Unknown Windows Version"
                            End If
                    End Select

            End Select
        End With

        Return strVer
    End Function
This works fine apart from the fact Vista isn't supported. Also it would be nice to show the edtion (Home/Pro in XP, Home/Ent/Ultimate in Vista).
Anyone have any ideas?

Thanks,
Joe
 
Don't worry, I'm now doing it like this:
VB.NET:
Public Function Version() As String
        Dim strVersion As String = ""
        Try
            Dim objSearch As New ManagementObjectSearcher("root\CIMV2", "SELECT * FROM Win32_OperatingSystem")
            For Each queryObj As ManagementObject In objSearch.Get()
                strVersion = queryObj("Caption")
            Next
        Catch err As ManagementException
            MsgBox("An error occurred while querying for version: " & err.Message)
        End Try

        Return strVersion
    End Function
 
use this one:
VB.NET:
    Friend Function GetOSVersion() As String
        Dim strVersion As String
        Select Case Environment.OSVersion.Platform
            Case PlatformID.Win32S
                strVersion = "Windows 3.1"
            Case PlatformID.Win32Windows
                Select Case Environment.OSVersion.Version.Minor
                    Case 0
                        strVersion = "Windows 95"
                    Case 10
                        If Environment.OSVersion.Version.Revision.ToString() = "2222A" Then
                            strVersion = "Windows 98 Second Edition"
                        Else
                            strVersion = "Windows 98"
                        End If
                    Case 90
                        strVersion = "Windows ME"
                    Case Else
                        strVersion = "Unknown"
                End Select
            Case PlatformID.Win32NT
                Select Case Environment.OSVersion.Version.Major
                    Case 3
                        strVersion = "Windows NT 3.51"
                    Case 4
                        strVersion = "Windows NT 4.0"
                    Case 5
                        Select Case Environment.OSVersion.Version.Minor
                            Case 0
                                strVersion = "Windows 2000"
                            Case 1
                                strVersion = "Windows XP"
                            Case 2
                                strVersion = "Windows 2003"
                        End Select
                    Case 6
                        strVersion = "Windows Vista"
                    Case Else
                        strVersion = "Unknown"
                End Select
            Case PlatformID.WinCE
                strVersion = "Windows CE"
        End Select
        Return strVersion
    End Function

it's the same function except that vista has been included
 
Back
Top