Este sitio utiliza cookies propias y de terceros. Si continúa navegando consideramos que acepta el uso de cookies. OK Más Información.

[VB.NET] NativeOsVersion

  • 0 Respuestas
  • 2309 Vistas

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado fudmario

  • *
  • Cramel
  • *
  • Mensajes: 197
  • Actividad:
    0%
  • Reputación 13
    • Ver Perfil
    • fudmario - GitHub
  • Skype: fudmario
« en: Enero 12, 2017, 08:00:25 pm »
Alternativa a Environment.OsVersion.Version, para aplicaciones que no se han manifestado para Windows 8.1 o Windows 10.
Código: vb.net
  1.     <DllImport("Ntdll.dll", CharSet:=CharSet.Unicode, ExactSpelling:=True)>
  2.     Friend Shared Function RtlGetVersion(<[In], Out> ByVal osversion As RtlOsVersionInfoExW) As Integer
  3.     End Function
  4.  
  5.     <StructLayout(LayoutKind.Sequential)>
  6.     Public Class RtlOsVersionInfoExW
  7.         Public dwOSVersionInfoSize As UInt32
  8.         Public dwMajorVersion As UInt32
  9.         Public dwMinorVersion As UInt32
  10.         Public dwBuildNumber As UInt32
  11.         Public dwPlataformId As UInt32
  12.         <MarshalAs(UnmanagedType.ByValTStr, SizeConst:=128)> Public szCSDVersion As String
  13.         Public wServicePackMajor As UInt16
  14.         Public wServicePackMinor As UInt16
  15.         Public wSuiteMask As UInt16
  16.         Public bProductType As Byte
  17.         Public bReserved As Byte
  18.     End Class
  19.  
  20.     Public Function NativeOsVersion() As Version
  21.         Dim osVersionInfo As New RtlOsVersionInfoExW()
  22.         osVersionInfo.dwOSVersionInfoSize = Marshal.SizeOf(GetType(RtlOsVersionInfoExW))
  23.         Dim status As Integer = RtlGetVersion(osVersionInfo)
  24.         If status <> 0 Then
  25.             ' Throw New Win32Exception(RtlNtStatusToDosError(status))
  26.             Return Environment.OSVersion.Version
  27.         End If
  28.  
  29.         Return New Version(osVersionInfo.dwMajorVersion,
  30.                            osVersionInfo.dwMinorVersion,
  31.                            osVersionInfo.dwBuildNumber)
  32.     End Function
  33.  


 

¿Te gustó el post? COMPARTILO!