Vous êtes actuellement hors ligne, en attente de reconnexion à Internet.

COMMENT FAIRE : Déterminer la version de Windows à l'aide de Visual C# .NET

Ancien nº de publication de cet article : F304283
Résumé
Cet article pas à pas explique comment déterminer quel système d'exploitation est utilisé sur le système où votre application s'exécute. Cet article fait une distinction entre Microsoft Windows 95, Microsoft Windows 98, Microsoft Windows 98 Deuxième Édition, Microsoft Windows Millennium Edition (Me), Microsoft Windows NT 3.51, Microsoft Windows NT 4.0, Microsoft Windows 2000 et Microsoft Windows XP.

Retour au début

Conditions requises

  • Microsoft Visual C# .NET
  • Niveau intermédiaire en programmation Visual C#
Retour au début

Obtention des données de version Windows

Pour déterminer le système d'exploitation utilisé sur un système, vous devez obtenir les données suivantes :

Windows 95 Windows 98 Windows Me Windows NT 4.0 Windows 2000 Windows XP
PlatformID 1 1 1 2 2 2
Version majeure 4 4 4 4 5 5
Version mineure 0 10 90 0 0 1

REMARQUE : bien que le code décrit dans cet article vérifie toutes les versions 32 bits de Windows, Windows 95 et Windows NT 3.51 ne prennent pas en charge Microsoft Visual Studio .NET ni Common Language Runtime.

Retour au début

Obtention des informations sur le système d'exploitation

L'espace de noms System contient une classe nommée OperatingSystem. Les propriétés de la classe OperatingSystem fournissent les informations requises sur le système d'exploitation utilisé. La propriété OSVersion de la classe System.Environment renvoie un objet OperatingSystem.
    System.OperatingSystem osInfo = System.Environment.OSVersion;
Retour au début

Détermination de la plate-forme

La première étape dans l'évaluation logique des informations OperatingSystem consiste à déterminer quelle plate-forme est utilisée. Pour ce faire, vous pouvez utiliser la propriété PlatformID de la classe OperatingSystem.

Par exemple, si vous obtenez la valeur de la propriété Win32Windows, cela indique qu'un des systèmes d'exploitation suivants est utilisé :
  • Windows 95
  • Windows 98
  • Windows 98 Deuxième Édition
  • Windows Me
De même, la propriété WinNT indique qu'un des systèmes d'exploitation suivants est utilisé :
  • Windows NT 3.51
  • Windows NT 4.0
  • Windows 2000
  • Windows XP
    switch(osInfo.Platform)        {            case System.PlatformID.Win32Windows:                         {                 //Code pour déterminer la version spécifique de Windows 95,                  //Windows 98, Windows 98 Deuxième Édition ou Windows Me.                }           case System.PlatformID.Win32NT:               {                  //Code pour déterminer la version spécifique de Windows NT 3.51,                   //Windows NT 4.0, Windows 2000 ou Windows XP.               }                    }
Retour au début

Détermination de la version spécifique de Windows 95, Windows 98, Windows 98 Deuxième Édition ou Windows Me

Si vous avez déterminé que la plate-forme est de type Windows 95, Windows 98, Windows 98 Deuxième Édition ou Windows Me, vous pouvez analyser la version majeure ou mineure pour déterminer la version spécifique.
    //Plate-forme Windows 95, Windows 98, Windows 98 Deuxième Édition ou 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 Deuxième Édition");                else                     Console.WriteLine("Windows 98");                     break;            case  90:                     Console.WriteLine("Windows Me");                     break;         }break;
Retour au début

Détermination de la version spécifique de Windows NT, Windows 2000 ou Windows XP

Si vous avez déterminé que la plate-forme est de type Windows NT 3.51, Windows NT 4.0, Windows 2000 ou Windows XP, vous pouvez analyser la version majeure ou mineure pour déterminer la version spécifique.
    //Plate-forme Windows NT 3.51, Windows NT 4.0, Windows 2000 ou 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;
Retour au début

Création de l'exemple de code

La procédure suivante génère un scénario de test qui met en œuvre cette fonctionnalité :
  1. Dans Visual Studio .NET, ouvrez une nouvelle application console C#. La fenêtre de code de Class1.cs s'ouvre par défaut.
  2. Remplacez tout le code de la fenêtre Class1.cs de l'éditeur de code par le code suivant :
    using System;namespace determineOS_CS{  class Class1   {      static void Main(string[] args)      {         //Obtenir les informations OperatingSystem de l'espace de noms System.         System.OperatingSystem osInfo =System.Environment.OSVersion;                  //Déterminer la plate-forme.         switch(osInfo.Platform)         {            //Plate-forme Windows 95, Windows 98, Windows 98 Deuxième Édition            //ou 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 Deuxième Édition");                     else                        Console.WriteLine("Windows 98");                     break;                  case  90:                     Console.WriteLine("Windows Me");                     break;               }               break;                     //Plate-forme Windows NT 3.51, Windows NT 4.0, Windows 2000 ou 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. Appuyez sur la combinaison de touches CTRL+F5 pour exécuter l'application. Notez que la version de Windows apparaît dans la fenêtre de la console.
Retour au début
Propriétés

ID d'article : 304283 - Dernière mise à jour : 04/30/2003 16:24:00 - Révision : 1.0

Microsoft Visual C# .NET 2002 Initiation

  • kbhowto kbhowtomaster kbprod2web KB304283
Commentaires