Menubar

lunes, 18 de enero de 2016

Saber la versión de Windows instalada desde VB.Net

Logos windows  En ocasiones queremos saber en que versión del sistema operativo (Windows) está ejecutandose nuestro programa. Desde VB.Net podemos saberlo muy facilmente, si deseas saber como continua leyendo este tutorial que incluye un código fuente para implementar en nuestro proyecto.
Mediante la propiedad Environment.OSVersion podemos obtener mucha información de nuestro sistema operativo, pero nos interesa saber la versión instalada. Para ello vamos a implementar el siguiente código fuente:

  '#### Purpose: Return windows version
  '#### Created date: 27/10/2012
  '#### Created by username: Juan Manuel Mar Hdz.
  '#### Last modified date: 07/09/2015
  '#### Last modified username: Juan Manuel Mar Hdz.
  '#### Thanks to http://social.msdn.microsoft.com/Forums/en-US/csharpgeneral/thread/5956c04f-072a-406c-ae6a-cc8b3a207936
  '#### Thanks to https://en.wikipedia.org/wiki/Windows_NT
  Public Function getVersion() As String
     
      Dim strVersion As String = "Unknown"
     
    Select Case Environment.OSVersion.Platform
       
          Case PlatformID.Win32S
            strVersion = "Windows 3.1"
           
        Case PlatformID.Win32Windows
           
            Select Case Environment.OSVersion.Version.Minor
               
                Case 0I
                  strVersion = "Windows 95"
                 
                Case 10I
                   
                      If Environment.OSVersion.Version.Revision.ToString() = "2222A" Then
                    strVersion = "Windows 98 Second Edition"
                  Else
                    strVersion = "Windows 98"
                  End If
                 
              Case 90I
                  strVersion = "Windows ME"
                 
            End Select
               
        Case PlatformID.Win32NT
           
              Select Case Environment.OSVersion.Version.Major
                 
                    Case 3I
                    strVersion = "Windows NT 3.51"
                Case 4I
                    strVersion = "Windows NT 4.0"
                   
                Case 5I
                   
                      Select Case Environment.OSVersion.Version.Minor
                         
                             Case 0I
                            strVersion = "Windows 2000"
                           
                             Case 1I
                                   strVersion = "Windows XP"
                                  
                             Case 2I
                            strVersion = "Windows 2003"
                               
                     End Select
                       
                Case 6I
                   
                      Select Case Environment.OSVersion.Version.Minor
                           
                         Case 0I
                             strVersion = "Windows Vista"
                            
                         Case 1I
                                strVersion = "Windows 7"
                               
                         Case 2I
                                strVersion = "Windows 8"
                               
                         Case 3I
                                strVersion = "Windows 8.1"
                               
                    End Select
                   
                   
                Case 10I
                   
                      Select Case Environment.OSVersion.Version.Minor
                           
                         Case 0I
                             strVersion = "Windows 10"
                            
                    End Select
                   
             End Select
               
          Case PlatformID.WinCE
              strVersion = "Windows CE"
             
          Case PlatformID.Unix
              strVersion = "Unix"
               
    End Select
   
    Return strVersion
       
  End Function
 
    Como pueden ver, gracias a una combinación de las propiedades Environment.OSVersion.Platform y Environment.OSVersion.Version podemos calcular la versión de nuestro sistema operativo en turno, muy sencillo, ¿verdad?, espero les sea de utilidad.

Corrección: Esta función no trabaja adecuadamente en Windows 10, para la versión corregida sigan este link http://marjuanm.blogspot.mx/2016/02/correccion-para-la-funcion-saber-la.html

Procedencia de las imágenes:
File: Logos de Windows
URL: http://blogs.msdn.com/cfs-filesystemfile.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-07-80/8407.Windows-Logos.png
Licencia: Creative Commons

¿Te gustó este post?, entonces si lo deseas puedes apoyarnos para continuar con nuestra labor, gracias.


publicidad:
Compartir:
Temas relacionados:
Caritas para las respuestas:
Escriba el código en la respuesta para insertar divertidas caritas en sus respuestas.
:) :( ;) :D :-/ :x :P :-* =(( :-O X( :7 B-) #:-S :(( :)) =)) :-B :-c :)] ~X( :-h I-) =D7 @-) :-w 7:P 2):) :!! \m/ :-q :-bd ^#(^

2 comentarios:

  1. El problema que yo me he encontrado es que Environment.OSVersion, que al final retorna GetVersionEx salvo que uses un manifest nuevo, retornará como mucho Windows 8: https://msdn.microsoft.com/library/windows/desktop/ms724832.aspx

    En mi caso, lo que hago es llamar a RtlGetVersion, si está disponible, que no tiene ese problema, con un fallback a GetVersion tradicional:
    http://sourceforge.net/p/nikkhokkho/code/HEAD/tree/trunk/FileOptimizer/Source/clsUtil.cpp

    ResponderEliminar
    Respuestas
    1. Pues tienes razón, probé esta función en windows xp/7/8 y trabaja muy bien, pero en windows 10 lo detecta como windows 8 :( voy a reescribir la función con tu sugerencia, gracias por tu aporte, cuando quede funcionando te notifico.

      Eliminar

Votar por nosotros en Hispatop
Votar por nosotros en La Blogoteca
Juegos Online Gratis - TriJuegos.com
Comunidad Kynamio