Visual C# を使用して Windows のバージョンを判別する方法

この記事は、以前は次の ID で公開されていました: JP304283
概要
この資料では、アプリケーションが実行されているシステムで、どのオペレーティング システムが使用されているのかを判別する方法を手順を追って説明します。この資料では、Microsoft Windows 95、Microsoft Windows 98、Microsoft Windows 98 Second Edition、Microsoft Windows Me (Millennium Edition)、Microsoft Windows NT 3.51、Microsoft Windows NT 4.0、Microsoft Windows 2000、および Microsoft Windows XP の間で判別を行います。

先頭に戻る

必要条件

  • Microsoft Visual C# .NET
  • Microsoft Visual C# 2005
  • 中級レベルの Visual C# プログラミングの理解
先頭に戻る

Windows のバージョン データの取得

システムで実行されているオペレーティング システムを判別するには、以下のデータを取得する必要があります。
+--------------------------------------------------------------+|           |Windows|Windows|Windows|Windows NT|Windows|Windows||           |  95   |  98   |  Me   |    4.0   | 2000  |  XP   |+--------------------------------------------------------------+|PlatformID | 1     | 1     | 1     | 2        | 2     | 2     |+--------------------------------------------------------------+|Major      |       |       |       |          |       |       || version   | 4     | 4     | 4     | 4        | 5     | 5     |+--------------------------------------------------------------+|Minor      |       |       |       |          |       |       || version   | 0     | 10    | 90    | 0        | 0     | 1     |+--------------------------------------------------------------+				
: この資料のコードは、Windows のすべての 32 ビット バージョンで使用できることが検証されていますが、Windows 95 および Windows NT 3.51 は Microsoft Visual Studio .NET または共通言語ランタイムをサポートしていません。

先頭に戻る

オペレーティング システム情報の取得

System 名前空間は OperatingSystem という名前のクラスを含んでいます。OperatingSystem クラスのプロパティは、使用されているオペレーティング システムについて必要な情報を提供します。System.Environment クラスの OSVersion プロパティは OperatingSystem オブジェクトを返します。
    System.OperatingSystem osInfo = System.Environment.OSVersion;				
先頭に戻る

プラットフォームの判別

OperatingSystem 情報の論理評価の最初の手順は、どのプラットフォームを使用しているかを判別することです。OperatingSystem クラスの PlatformID プロパティを使用して、どのプラットフォームを使用しているかを判別できます。

たとえば、Win32Windows プロパティの列挙値は以下のオペレーティング システムのいずれかを示します。
  • Windows 95
  • Windows 98
  • Windows 98 Second Edition
  • Windows Me
同様に、WinNT プロパティは以下のオペレーティング システムのいずれかを示します。
  • 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.               }                    }				
先頭に戻る

Windows 95、Windows 98、Windows 98 Second Edition または Windows Me の特定のバージョンの判別

プラットフォームが Windows 95、Windows 98、Windows 98 Second Edition または Windows Me のいずれかであると判別されたら、メジャー バージョンまたはマイナ バージョンを分析して特定のバージョンを判別できます。
    // 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;				
先頭に戻る

Windows NT、Windows 2000 または Windows XP の特定のバージョンの判別

プラットフォームが Windows NT 3.51、Windows NT 4.0、Windows 2000 または Windows XP のいずれかであると判別されたら、メジャー バージョンまたはマイナ バージョンを分析して特定のバージョンを判別できます。
    // 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;				
先頭に戻る

サンプルのビルド

次の手順は、この機能を例示するテスト事例をビルドします。
  1. Visual Studio .NET で、新しい C# のコンソール アプリケーションを作成します。デフォルトにより、Class1.cs のコード ウィンドウが開きます。

    : Visual Studio 2005 では、デフォルトのファイルは Program.cs です。Program.cs をダブルクリックすると、コード ウィンドウが開かれます。
  2. Class1.cs コード エディタ ウィンドウのすべてのコードを、次のサンプル コードに置き換えます。
    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;         }         Console.ReadLine ();      }   }}					
  3. Ctrl + F5 キーを押して、アプリケーションを実行します。コンソール ウィンドウに Windows のバージョンが表示されることを確認します。
先頭に戻る
プロパティ

文書番号:304283 - 最終更新日: 10/04/2006 00:10:00 - リビジョン: 2.1

Microsoft Visual C# .NET 2002 Standard Edition, Microsoft Visual C# 2005

  • kbhowtomaster kbprod2web KB304283
フィードバック