Cómo determinar la versión de Windows con Visual C#

Resumen
En este artículo paso a paso se explica cómo determinar qué sistema operativo está en uso en el sistema donde se ejecuta la aplicación. En este artículo se distingue entre Microsoft Windows 95, Microsoft Windows 98, Microsoft Windows 98 Segunda edición, Microsoft Windows Millennium Edition, Microsoft Windows NT 3.51, Microsoft Windows NT 4.0, Microsoft Windows 2000 y Microsoft Windows XP.

Volver al principio

Requisitos

  • Microsoft Visual C# .NET
  • Microsoft Visual C# 2005
  • Conocimientos de nivel intermedio de programación en Visual C#
Volver al principio

Obtener los datos de la versión de Windows

Para determinar el sistema operativo que se ejecuta en un sistema, se necesitan los datos siguientes:
+--------------------------------------------------------------+|           |Windows|Windows|Windows|Windows NT|Windows|Windows||           |  95   |  98   |  Me   |    4.0   | 2000  |  XP   |+--------------------------------------------------------------+|IdPlataforma | 1     | 1     | 1     | 2        | 2     | 2     |+--------------------------------------------------------------+|Principal      |       |       |       |          |       |       || versión   | 4     | 4     | 4     | 4        | 5     | 5     |+--------------------------------------------------------------+|Secundaria      |       |       |       |          |       |       || versión   | 0     | 10    | 90    | 0        | 0     | 1     |+--------------------------------------------------------------+				
NOTA: aunque el uso del código incluido en este artículo se ha comprobado con todas las versiones de 32 bits de Windows, Windows 95 y Windows NT 3.51 no admiten Microsoft Visual Studio .NET o el entorno de tiempo de ejecución del lenguaje común.

Volver al principio

Obtener información del sistema operativo

El espacio de nombres System contiene una clase denominada OperatingSystem. Las propiedades de esta clase proporcionan la información necesaria acerca del sistema operativo en uso. La propiedad OSVersion de la clase System.Environment devuelve un objeto OperatingSystem.
    System.OperatingSystem osInfo = System.Environment.OSVersion;				
Volver al principio

Determinar la plataforma

El primer paso para la evaluación lógica de la información de OperatingSystem consiste en determinar qué plataforma se está utilizando. Es posible emplear la propiedad PlatformID de la clase OperatingSystem para determinar la plataforma.

Por ejemplo, el valor enumerado de la propiedad Win32Windows indica uno de los sistemas operativos siguientes:
  • Windows 95
  • Windows 98
  • Windows 98 Segunda edición
  • Windows Millennium Edition
De forma similar, la propiedad WinNT indica uno de los sistemas operativos siguientes:
  • Windows NT 3.51
  • Windows NT 4.0
  • Windows 2000
  • Windows XP
    switch(osInfo.Platform)        {            case System.PlatformID.Win32Windows:                         {                 // Código para determinar la versión específica de Windows 95,                  // Windows 98, Windows 98 Segunda edición o Windows Millennium Edition.                }           case System.PlatformID.Win32NT:               {                  // Código para determinar la versión específica de Windows NT 3.51,                   // Windows NT 4.0, Windows 2000 o Windows XP.               }                    }				
Volver al principio

Determinar la versión específica de Windows 95, Windows 98, Windows 98 Segunda edición o Windows Me

Si determina que la plataforma es Windows 95, Windows 98, Windows 98 Segunda edición o Windows Millennium Edition, puede analizar la versión principal o secundaria para averiguar la versión concreta.
    // La plataforma es Windows 95, Windows 98,    // Windows 98 Segunda edición o Windows Me.    case System.PlatformID.Win32Windows:             switch (osInfo.Version.Minor)        {            case 0:                Console.WriteLine ("Windows 95");                break;            case 10:                if(osInfo.Version.Revision.ToString()=="2222A")                    Console.WriteLine("Windows 98 Segunda edición");                else                     Console.WriteLine("Windows 98");                     break;            case  90:                     Console.WriteLine("Windows Me");                     break;         }break;				
Volver al principio

Determinar la versión específica de Windows NT, Windows 2000 o Windows XP

Si determina que la plataforma es Windows NT 3.51, Windows NT 4.0, Windows 2000 o Windows XP, es posible analizar la versión principal o la secundaria para averiguar la versión específica.
    // La plataforma es Windows NT 3.51, Windows NT 4.0, Windows 2000,    // o Windows XP.    case System.PlatformID.Win32NT:    switch(osInfo.Version.Major)        {            case 3:                Console.WriteLine("Windows NT 3.51");                break;            case 4:                Console.WriteLine("Windows NT 4.0");                break;            case 5:                if (osInfo.Version.Minor==0)                     Console.WriteLine("Windows 2000");                else                    Console.WriteLine("Windows XP");                    break;         }break;				
Volver al principio

Generar el ejemplo

Con los pasos siguientes se crea un escenario de prueba que demuestra esta funcionalidad:
  1. Abra una nueva aplicación de consola de C# en Visual Studio .NET. La ventana de código de Class1.cs se abre de forma predeterminada.

    Nota: en Visual Studio 2005, el archivo predeterminado es Program.cs. Puede hacer doble clic en Program.cs para abrir la ventana de código.
  2. Reemplace todo el código de la ventana del editor de código Class1.cs con el siguiente código de ejemplo:
    using System;namespace determineOS_CS{  class Class1   {      static void Main(string[] args)      {         // Obtener la información de OperatingSystem del espacio de nombres system.         System.OperatingSystem osInfo =System.Environment.OSVersion;                  // Determinar la plataforma.         switch(osInfo.Platform)         {            // La plataforma es Windows 95, Windows 98,             // Windows 98 Segunda edición, o Windows Me.            case System.PlatformID.Win32Windows:                        switch (osInfo.Version.Minor)               {                  case 0:                     Console.WriteLine ("Windows 95");                     break;                  case 10:                     if(osInfo.Version.Revision.ToString()=="2222A")                        Console.WriteLine("Windows 98 Segunda edición");                     else                        Console.WriteLine("Windows 98");                     break;                  case  90:                     Console.WriteLine("Windows Me");                     break;               }               break;                     // La plataforma es Windows NT 3.51, Windows NT 4.0, Windows 2000,            // o Windows XP.            case System.PlatformID.Win32NT:               switch(osInfo.Version.Major)               {                  case 3:                     Console.WriteLine("Windows NT 3.51");                     break;                  case 4:                     Console.WriteLine("Windows NT 4.0");                     break;                  case 5:                     if (osInfo.Version.Minor==0)                         Console.WriteLine("Windows 2000");                     else                        Console.WriteLine("Windows XP");                     break;               }break;         }         Console.ReadLine ();      }   }}					
  3. Presione CTRL+F5 para ejecutar la aplicación. Observe que la versión de Windows aparece en la ventana de consola.
Volver al principio
Propiedades

Id. de artículo: 304283 - Última revisión: 10/23/2006 15:37:44 - Revisión: 2.1

Microsoft Visual C# .NET 2002 Standard Edition, Microsoft Visual C# 2005 Express Edition

  • kbhowtomaster kbprod2web KB304283
Comentarios