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