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

Seleccione idioma Seleccione idioma
Id. de artículo: 304283 - Ver los productos a los que se aplica este artículo
Expandir todo | Contraer todo

En esta página

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.

Requisitos

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

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.

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;				

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.
               }
           
         }
				

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;
				

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;
				

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.

Propiedades

Id. de artículo: 304283 - Última revisión: lunes, 23 de octubre de 2006 - Versión: 2.1
La información de este artículo se refiere a:
  • Microsoft Visual C# .NET 2002 Standard Edition
  • Microsoft Visual C# 2005 Express Edition
Palabras clave: 
kbhowtomaster kbprod2web KB304283

Enviar comentarios

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com