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

Traductions disponibles Traductions disponibles
Numéro d'article: 304283 - Voir les produits auxquels s'applique cet article
Ancien nº de publication de cet article : F304283
Agrandir tout | Réduire tout

Sommaire

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.

Conditions requises

  • Microsoft Visual C# .NET
  • Niveau intermédiaire en programmation Visual C#

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 :

Réduire ce tableauAgrandir ce tableau
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.

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;

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

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;

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;

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.

Propriétés

Numéro d'article: 304283 - Dernière mise à jour: mercredi 30 avril 2003 - Version: 1.0
Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft Visual C# .NET 2002 Initiation
Mots-clés : 
kbhowto kbhowtomaster kbprod2web KB304283
L'INFORMATION CONTENUE DANS CE DOCUMENT EST FOURNIE PAR MICROSOFT SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. L'UTILISATEUR ASSUME LE RISQUE DE L'UTILISATION DU CONTENU DE CE DOCUMENT. CE DOCUMENT NE PEUT ETRE REVENDU OU CEDE EN ECHANGE D'UN QUELCONQUE PROFIT.

Envoyer des commentaires

 

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