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

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:


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à

ID articolo: 304283 - Ultima revisione: 08 apr 2003 - Revisione: 1

Feedback