Al momento sei offline in attesa che la connessione Internet venga ristabilita

HOW TO: Determinare la versione di Windows utilizzando Visual C# .NET

Questo articolo è stato precedentemente pubblicato con il codice di riferimento I304283
Sommario
In questo articolo viene illustrata la procedura per determinare il sistema operativo in uso nel sistema in cui si sta eseguendo una data applicazione. Nell'articolo viene fatta distinzione tra Microsoft Windows 95, Microsoft Windows 98, Microsoft Windows 98 Seconda edizione, Microsoft Windows Millennium Edition (Me), Microsoft Windows NT 3.51, Microsoft Windows NT 4.0, Microsoft Windows 2000 e Microsoft Windows XP.

Torna all'inizio

Requisiti

  • Microsoft Visual C# .NET
  • Livello intermedio di conoscenza della programmazione in Visual C#
Torna all'inizio

Ottenere i dati della versione di Windows

Per determinare il sistema operativo in uso in un sistema è necessario ottenere i seguenti dati:

Windows 95Windows 98Windows MEWindows NT 4.0Windows 2000Windows XP
PlatformID111222
Versione principale444455
Versione secondaria01090001

NOTA: sebbene il codice riportato in questo articolo consenta di verificare tutte le versioni di Windows a 32 bit, Windows 95 e Windows NT 3.51 non supportano Microsoft Visual Studio .NET né Common Language Runtime.

Torna all'inizio

Ottenere informazioni sul sistema operativo

Lo spazio dei nomiSystemcontiene una classe denominataOperatingSystem. Le proprietà della classeOperatingSystemforniscono le informazioni necessarie in merito al sistema operativo in uso. La proprietàOSVersiondella classeSystem.Environmentrestituisce un oggettoOperatingSystem.
    System.OperatingSystem osInfo = System.Environment.OSVersion;
Torna all'inizio

Determinare la piattaforma

La prima operazione del processo di valutazione logica delle informazioniOperatingSystemconsiste nel determinare la piattaforma in uso. È possibile utilizzare la proprietàPlatformIDdella classeOperatingSystemper determinare la piattaforma in uso.

Ad esempio, il valore enumerato della proprietàWin32Windowsindica uno dei seguenti sistemi operativi:
  • Windows 95
  • Windows 98
  • Windows 98 Seconda edizione
  • Windows ME
Allo stesso modo, la proprietàWinNTindica uno dei seguenti sistemi operativi:
  • Windows NT 3.51
  • Windows NT 4.0
  • Windows 2000
  • Windows XP
    switch(osInfo.Platform)        {            case System.PlatformID.Win32Windows:                         {                 //Code to determine specific version of Windows 95,                  //Windows 98, Windows 98 Second Edition, or Windows Me.                }           case System.PlatformID.Win32NT:               {                  //Code to determine specific version of Windows NT 3.51,                   //Windows NT 4.0, Windows 2000, or Windows XP.               }                    }
Torna all'inizio

Determinare la versione specifica di Windows 95, Windows 98, Windows 98 Seconda edizione o Windows Me

Se si determina che la piattaforma in uso è Windows 95, Windows 98, Windows 98 Seconda edizione o Windows Me, sarà possibile analizzare la versione principale o secondaria al fine di individuare la versione specifica del sistema operativo utilizzato.
    //Platform is Windows 95, Windows 98, Windows 98 Second Edition, or 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 Second Edition");                else                     Console.WriteLine("Windows 98");                     break;            case  90:                     Console.WriteLine("Windows Me");                     break;         }break;
Torna all'inizio

Determinare la versione specifica di Windows NT, Windows 2000 o Windows XP

Se si determina che la piattaforma in uso è Windows 3.51, Windows 4.0, Windows 2000 o Windows XP, sarà possibile analizzare la versione principale o secondaria al fine di individuare la versione specifica del sistema operativo utilizzato.
    //Platform is Windows NT 3.51, Windows NT 4.0, Windows 2000, or 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;
Torna all'inizio

Creare il codice di esempio

La procedura descritta di seguito consente di creare uno scenario di verifica che illustra tale funzionalità:
  1. In Visual Studio .NET creare una nuova applicazione console C#. Per impostazione predefinita verrà visualizzata la finestra del codice per Class1.cs.
  2. Nella finestra dell'editor del codice di Class1.cs sostituire tutto il codice esistente con quanto riportato di seguito:
    using System;namespace determineOS_CS{  class Class1   {      static void Main(string[] args)      {         //Get OperatingSystem information from the system namespace.         System.OperatingSystem osInfo =System.Environment.OSVersion;                  //Determine the platform.         switch(osInfo.Platform)         {            //Platform is Windows 95, Windows 98, Windows 98 Second Edition,             //or 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 Second Edition");                     else                        Console.WriteLine("Windows 98");                     break;                  case  90:                     Console.WriteLine("Windows Me");                     break;               }               break;                     //Platform is Windows NT 3.51, Windows NT 4.0, Windows 2000, or 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;         }      }   }}
  3. Premere CTRL+F5 per eseguire l'applicazione. La versione di Windows verrà visualizzata nella finestra della console.
Torna all'inizio
Proprietà

ID articolo: 304283 - Ultima revisione: 04/08/2003 22:36:00 - Revisione: 1.0

  • Microsoft Visual C# .NET 2002 Standard Edition
  • kbhowto kbhowtomaster kbprod2web KB304283
Feedback