Páginas

viernes, 11 de marzo de 2016

¿es nuestro windows una versión antigua o moderna?, como saberlo desde VB.Net

Logos windows  Poco tiempo atrás, a través de este blog (y con la ayuda de seguidores del mismo que reportaron errores) se liberó el código fuente para conocer la versión instalada de nuestro Windows. Pues bien a través de algunos posts que voy a estar publicando veremos como poner a funcionar ese código, y poder extraer información valiosa del mismo. A continuación muestro como saber si nuestra versión instalada (del sistema operativo) es moderna o antigua.

  Gracias a la función getVersion() podemos obtener el nombre de nuestro sistema operativo en funcionamiento, lo único que hay que hacer es obtener ese nombre y verificar si se trata de una versión moderna o no a través de su nombre. Para ello vamos a implementar las funciones isNotWindowsSystemisOldWindowsSystem, isIntermediateWindowsSystem y isModernWindowsSystem.

isNotWindowsSystem: Retorna la bandera True o False si se trata o no del sistema operativo Windows, para ello busca la secuencia "windows" devuelta a través de la función getVersion.

isOldWindowsSystem: Retorna la bandera True o False, busca ciertas secuencias para saber si es una versión antigua de Microsoft Windows, secuencias como por ejemplo "windows 9" que sería indicar de estar usando por ejemplo Windows 95 o 98.

isIntermediateWindowsSystem:  Retorna la bandera True o False si encuentra secuencias como por ejemplo Windows 2000 o Windows XP. Se le considera versión intermedia (por un servidor) ya que estas abandonaron el modelo monousuario, pero a partir de la versión Windows Vista hubo cambios significativos en el funcionamiento del perfil usuario que hicieron que fueran incompatibles (por lo menos de una manera simple) con el modelo anterior.

isModernWindowsSystem: Retorna la bandera True o False para las versiones a partir de Windows Vista en adelante.

'#### Purpose: Return not windows system flag
  '#### Created date: 07/09/2015
  '#### Created by username: Juan Manuel Mar Hdz.
  '#### Last modified date: 21/01/2016
  '#### Last modified username: Juan Manuel Mar Hdz.
  Public Function isNotWindowsSystem() As Boolean
 
  Dim version As String = getVersion
 
  If version.IsNullOrEmpty(version) = True Then
  Return True
  Else
 
  If version.Trim().ToLower().IndexOf("windows") >= 0 Then
  Return False
  Else
  Return True
  End If
 
  End If
 
  End Function
  
  '#### Purpose: Return old windows system flag
  '#### Created date: 07/09/2015
  '#### Created by username: Juan Manuel Mar Hdz.
  '#### Last modified date: 21/01/2016
  '#### Last modified username: Juan Manuel Mar Hdz.
  Public Function isOldWindowsSystem() As Boolean
 
  Dim version As String = getVersion
 
  If version.IsNullOrEmpty(version) = True Then
  Return False
  Else

  If version.Trim().ToLower().IndexOf("windows 3.") >= 0 Or version.Trim().ToLower().indexOf("windows 9") >= 0 Or version.Trim().ToLower().indexOf("windows me") >= 0 Or version.Trim().ToLower().indexOf("windows mille") >= 0 Or version.Trim().ToLower().indexOf("windows nt") >= 0 Or version.Trim().ToLower().indexOf("windows ce") >= 0 Then
  Return True
  Else
  Return False
  End If
 
  End If
 
  End Function
  
  '#### Purpose: Return intermediate windows system flag
  '#### Created date: 07/09/2015
  '#### Created by username: Juan Manuel Mar Hdz.
  '#### Last modified date: 21/01/2016
  '#### Last modified username: Juan Manuel Mar Hdz.
  Public Function isIntermediateWindowsSystem() As Boolean
 
  Dim version As String = getVersion
 
  If version.IsNullOrEmpty(version) = True Then
  Return False
  Else

  If version.Trim().ToLower().IndexOf("windows 2000") >= 0 Or version.Trim().ToLower().indexOf("windows xp") >= 0 Or version.Trim().ToLower().indexOf("windows 2003") >= 0 Or version.Trim().ToLower().indexOf("windows server 2003") >= 0 Or version.Trim().ToLower().indexOf("windows home server") >= 0 Then
  Return True
  Else
  Return False
  End If
 
  End If
 
  End Function
  
  '#### Purpose: Return modern windows system flag
  '#### Created date: 07/09/2015
  '#### Created by username: Juan Manuel Mar Hdz.
  '#### Last modified date: 10/03/2016
  '#### Last modified username: Juan Manuel Mar Hdz.
  Public Function isModernWindowsSystem() As Boolean
 
  Dim version As String = getVersion
 
  If version.IsNullOrEmpty(version) = True Then
  Return False
  Else

  If version.Trim().ToLower().indexOf("windows vista") >= 0 Or version.Trim().ToLower().indexOf("windows server 2008") >= 0 Or version.Trim().ToLower().indexOf("windows 7") >= 0 Or version.Trim().ToLower().indexOf("windows server 2011") >= 0 Or version.Trim().ToLower().indexOf("windows 8") >= 0 Or version.Trim().ToLower().indexOf("windows server 2012") >= 0 Or version.Trim().ToLower().indexOf("windows 10") >= 0 Then
  Return True
  Else
  Return False
  End If
 
  End If
 
  End Function

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.

2 comentarios:

  1. Creo que estos ejemplos son muy ilustrativos, pero veo algo, que me parece un fallo de concepto. La función isModernWindowsSystem, tendrá que irse actualizando a medida que aparezcan nuevos sistemas operativos, es decir, cuando salga Windows 11, habrá que cambiar la función, ya que sino, no dirá que es un Windows moderno.

    Personalmente prefiero el enfoque que seguí con mi GetWindowsVersion que te puse como ejemplo. Si para Windows 3.1 devolvemos 310, y para Windows 10 devolvemos 100, el código se simplifica mucho, siendo:

    isModernWindowsSystem = GetWindowsVersion() >= 6

    Que además, será compatible con futuras versiones de Windows (en principio).

    ResponderBorrar
    Respuestas
    1. si, tienes razon en ello, tratare de hacer las adecuaciones necesarias, te cuento como me fue, gracias por la observacion :)

      Borrar