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

文書翻訳 文書翻訳
文書番号: 304283 - 対象製品
この記事は、以前は次の 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 - 最終更新日: 2006年10月4日 - リビジョン: 2.1
この資料は以下の製品について記述したものです。
  • Microsoft Visual C# .NET 2002 Standard Edition
  • Microsoft Visual C# 2005
キーワード:?
kbhowtomaster kbprod2web KB304283
"Microsoft Knowledge Baseに含まれている情報は、いかなる保証もない現状ベースで提供されるものです。Microsoft Corporation及びその関連会社は、市場性および特定の目的への適合性を含めて、明示的にも黙示的にも、一切の保証をいたしません。さらに、Microsoft Corporation及びその関連会社は、本文書に含まれている情報の使用及び使用結果につき、正確性、真実性等、いかなる表明・保証も行ないません。Microsoft Corporation、その関連会社及びこれらの権限ある代理人による口頭または書面による一切の情報提供またはアドバイスは、保証を意味するものではなく、かつ上記免責条項の範囲を狭めるものではありません。Microsoft Corporation、その関連会社 及びこれらの者の供給者は、直接的、間接的、偶発的、結果的損害、逸失利益、懲罰的損害、または特別損害を含む全ての損害に対して、状況のいかんを問わず一切責任を負いません。(Microsoft Corporation、その関連会社 またはこれらの者の供給者がかかる損害の発生可能性を了知している場合を含みます。) 結果的損害または偶発的損害に対する責任の免除または制限を認めていない地域においては、上記制限が適用されない場合があります。なお、本文書においては、文書の体裁上の都合により製品名の表記において商標登録表示、その他の商標表示を省略している場合がありますので、予めご了解ください。"

フィードバック

 

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