Menubar

martes, 19 de enero de 2016

Saber el número de bits de nuestra versión de Windows instalada desde VB.Net

Por J. Manuel Mar H. Editar
Compartir en Facebook
Compartir en Twitter
Compartir en MeWe
Enviar a Reddit
Guardar en Internet archive
Guardar en  archive.today
Enviar por email
Logo de Windows  En ocasiones queremos saber si nuestra versión de Windows instalada es de 32 o 64 bits. 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.
  Recientemente publiqué una función para saber la versión de Windows instalada, pues bien, en esta ocasión vamos a usarla junto a un código fuente que nos permite hacer lo que el título de este post menciona, saber de cuantos bits es nuestro sistema operativo. Si aún no la haz integrado a tu sistema ahora es el momento.

  '#### Purpose: Return operative system bits version
  '#### Created date: 11/01/2016
  '#### Created by username: Juan Manuel Mar Hdz.
  '#### Last modified date: 14/01/2016
  '#### Last modified username: Juan Manuel Mar Hdz.
  '#### Thanks to http://dondueck.com/2010/04/15/detecting-32-bit-vs-64-bit-os-architecture-in-vb-net/
  '#### Thanks to https://es.wikipedia.org/wiki/Windows_95
  Public Function getBitsVersion() As Long
    
    Dim winver As String = ""
      Dim key As Microsoft.Win32.RegistryKey = Microsoft.Win32.Registry.LocalMachine
    
      '##### Return bits number to old window's versions or others systems ####
    
      Try
          winver = getVersion().Trim
      Catch exp As Exception
          winver = ""
      End Try
    
      If isOldWindowsSystem = True Or isNotWindowsSystem = True Then
        
          If isNotWindowsSystem = True Then
              Return 32
          Else
            
              If winver.IsNullOrEmpty(winver) = True Then
                  Return 32
              Else
                
                  If winver.Trim().ToLower = "windows 3.1" Then
                      Return 16
                  Else
                      Return 32
                  End If
                
              End If
            
          End If
        
          Exit Function
        
      End If
    
      '##### Return bits number to old window's versions or others systems ####
    
      Try
        
          If key.OpenSubKey("Hardware\Description\System\CentralProcessor").GetValue("Identifier").ToString().ToLower().Contains("x86") Or key.OpenSubKey("Hardware\Description\System\CentralProcessor").GetValue("Identifier").ToString().ToLower().Contains("32") Then
            Return 32
        Else
            Return 64
        End If
    
      Catch exp As Exception
        
          Try
            
              If key.OpenSubKey("Hardware\Description\System\CentralProcessor\0").GetValue("Identifier").ToString().ToLower().Contains("x86") Or key.OpenSubKey("Hardware\Description\System\CentralProcessor\0").GetValue("Identifier").ToString().ToLower().Contains("32") Then
              Return 32
          Else
              Return 64
          End If
            
          Catch ex As Exception
            
              Try
                
                  If key.OpenSubKey("Hardware\Description\System\CentralProcessor\1").GetValue("Identifier").ToString().ToLower().Contains("x86") Or key.OpenSubKey("Hardware\Description\System\CentralProcessor\1").GetValue("Identifier").ToString().ToLower().Contains("32") Then
                Return 32
            Else
                Return 64
            End If
            
              Catch e As Exception
                  Return 32
              End Try
            
          End Try
        
      End Try
    
  End Function
 
    La función "getVersion" solo tiene la finalidad de regresar la versión de Windows, esto no está probado en las versiones antiguas (Windows 3.11 y Windows 9.x, aunque a estas alturas dudo que alguien lo use, además de que yo sepa no existe el framework .Net para este sistema), de esa manera si se trata de una versión antigua se retorna 16 o 32 bits directamente, si por el contrario ya se trata de una versión más actual de Windows se usará entonces el registro para determinar correctamente su número en bits.

  Pero en caso contrario usamos el registro para saber de cuantos bits es nuestro procesador, como pueden en el registro del sistema hay dos variantes posibles (llaves): Hardware\Description\System\CentralProcessor y Hardware\Description\System\CentralProcessor\0, con este dato obtenido podemos saber facilmente el número de bits de nuestro sistema. Espero les sea de utilidad.

Procedencia de las imágenes:
File: Logos de Windows
URL: http://mlm-s2-p.mlstatic.com/sistemas-operativos-software-juegos-pc-339801-MLM20437678808_102015-S.jpg
Licencia: Creative Commons

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



Licencia de Creative Commons Esta obra está bajo una licencia de Creative Commons Reconocimiento 4.0 Internacional, haga clic aquí para conocer más detalles.


Compartir:



Danos tu voto
Comunidad Kynamio
Directorio de blogs, ¡agrega el tuyo!
Programas para el mantenimiento de Windows
Blog de seguridad informatica