GetVersionExA (Kernel32)



Usage

    Public Structure OSVersionInfoA
        Public OSVersionInfoSize As Integer
        Public MajorVersion As Integer
        Public MinorVersion As Integer
        Public BuildNumber As Integer
        Public PlatformId As Integer
        <MarshalAs(UnmanagedType.ByValTStr, SizeConst:=128)>
        Public CSDVersion As String
    End Structure

    Public Structure OSVERSIONINFOEXA
        Public OSVersionInfoSize As Integer
        Public MajorVersion As Integer
        Public MinorVersion As Integer
        Public BuildNumber As Integer
        Public PlatformId As Integer
        <MarshalAs(UnmanagedType.ByValTStr, SizeConst:=128)>
        Public CSDVersion As String
        Public ServicePackMajor As Short
        Public ServicePackMinor As Short
        Public SuiteMask As Short
        Public ProductType As Byte
        Public Reserved As Byte
    End Structure

    Declare Ansi Function GetVersionEx Lib "kernel32.dll" Alias "GetVersionExA" (ByRef VersionInformation As OSVERSIONINFOEXA) As Boolean
    ''Declare Ansi Function GetVersionEx Lib "kernel32.dll" Alias "GetVersionExA" (ByRef VersionInformation As OSVersionInfoA) As Boolean

        ''Dim osvi As New OSVersionInfoA
        ''osvi.OSVersionInfoSize = Marshal.SizeOf(osvi)
        ''If GetVersionEx(osvi) Then
        ''Dim result As String =
        ''String.Format("Windows Version: {0}.{1}.{2}.{3}",
        ''osvi.MajorVersion, osvi.MinorVersion,
        ''osvi.BuildNumber, osvi.PlatformId)
        ''MessageBox.Show(result)
        ''End If
        Dim osviEx As New OSVERSIONINFOEXA
        osviEx.OSVersionInfoSize = Marshal.SizeOf(osviEx)
        If GetVersionEx(osviEx) Then
            Dim result As String =
               String.Format("Windows Version: {0}.{1}.{2}.{3}",
               osviEx.MajorVersion, osviEx.MinorVersion,
               osviEx.BuildNumber, osviEx.PlatformId)
            MessageBox.Show(result)
        End If