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

Traduzione articoli Traduzione articoli
Identificativo articolo: 304283 - Visualizza i prodotti a cui si riferisce l?articolo.
Questo articolo è stato precedentemente pubblicato con il codice di riferimento I304283
Espandi tutto | Chiudi tutto

In questa pagina

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.

Requisiti

  • Microsoft Visual C# .NET
  • Livello intermedio di conoscenza della programmazione in Visual C#

Ottenere i dati della versione di Windows

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

Riduci questa tabellaEspandi questa tabella
Windows 95 Windows 98 Windows ME Windows NT 4.0 Windows 2000 Windows XP
PlatformID 1 1 1 2 2 2
Versione principale 4 4 4 4 5 5
Versione secondaria 0 10 90 0 0 1

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.

Ottenere informazioni sul sistema operativo

Lo spazio dei nomi System contiene una classe denominata OperatingSystem. Le proprietà della classe OperatingSystem forniscono le informazioni necessarie in merito al sistema operativo in uso. La proprietà OSVersion della classe System.Environment restituisce un oggetto OperatingSystem.
    System.OperatingSystem osInfo = System.Environment.OSVersion;

Determinare la piattaforma

La prima operazione del processo di valutazione logica delle informazioni OperatingSystem consiste nel determinare la piattaforma in uso. È possibile utilizzare la proprietà PlatformID della classe OperatingSystem per determinare la piattaforma in uso.

Ad esempio, il valore enumerato della proprietà Win32Windows indica uno dei seguenti sistemi operativi:
  • Windows 95
  • Windows 98
  • Windows 98 Seconda edizione
  • Windows ME
Allo stesso modo, la proprietà WinNT indica 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.
               }
           
         }

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;

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;

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.

Proprietà

Identificativo articolo: 304283 - Ultima modifica: martedì 8 aprile 2003 - Revisione: 1.0
Le informazioni in questo articolo si applicano a
  • Microsoft Visual C# .NET 2002 Standard Edition
Chiavi: 
kbhowto kbhowtomaster kbprod2web KB304283
LE INFORMAZIONI CONTENUTE NELLA MICROSOFT KNOWLEDGE BASE SONO FORNITE SENZA GARANZIA DI ALCUN TIPO, IMPLICITA OD ESPLICITA, COMPRESA QUELLA RIGUARDO ALLA COMMERCIALIZZAZIONE E/O COMPATIBILITA' IN IMPIEGHI PARTICOLARI. L'UTENTE SI ASSUME L'INTERA RESPONSABILITA' PER L'UTILIZZO DI QUESTE INFORMAZIONI. IN NESSUN CASO MICROSOFT CORPORATION E I SUOI FORNITORI SI RENDONO RESPONSABILI PER DANNI DIRETTI, INDIRETTI O ACCIDENTALI CHE POSSANO PROVOCARE PERDITA DI DENARO O DI DATI, ANCHE SE MICROSOFT O I SUOI FORNITORI FOSSERO STATI AVVISATI. IL DOCUMENTO PUO' ESSERE COPIATO E DISTRIBUITO ALLE SEGUENTI CONDIZIONI: 1) IL TESTO DEVE ESSERE COPIATO INTEGRALMENTE E TUTTE LE PAGINE DEVONO ESSERE INCLUSE. 2) I PROGRAMMI SE PRESENTI, DEVONO ESSERE COPIATI SENZA MODIFICHE, 3) IL DOCUMENTO DEVE ESSERE DISTRIBUITO INTERAMENTE IN OGNI SUA PARTE. 4) IL DOCUMENTO NON PUO' ESSERE DISTRIBUITO A SCOPO DI LUCRO.

Invia suggerimenti

 

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