|
.NET TIPS Windows OSのバージョンを判別するには?【Vista対応】[2.0のみ、C#、VB]デジタルアドバンテージ 一色 政彦2007/02/09 |
![]() |
|
|
|
| ※本稿はWindows Vistaおよび.NET Framework 2.0を対象に、「TIPS:Windows OSの種類やバージョンを判別するには?」を改訂したものです。 |
ある特定バージョンのWindowsに特有な機能(例えばWindows XPのCD書き込み機能など)をアプリケーションから利用したい場合、プログラムではまずWindows OSのバージョンを取得し、そのバージョンごとに処理を分岐させる必要がある。そのようなときは、OperatingSystemクラス(System名前空間)を使うとWindows OSのバージョンを簡単に判別できる。
Windows OSのバージョンを判別するには?
OperatingSystemクラスを使ってWindows OSを判別するには、まずEnvironmentクラス(System名前空間)のOSVersionプロパティからOperatingSystemオブジェクトを取得する。このオブジェクトのPlatformプロパティ、Version.Majorプロパティ、Version.Minorプロパティの値の組み合わせからOSを特定することができる。なお、PlatformプロパティはPlatformID列挙体(System名前空間)で定義された値で、Version.MajorプロパティとVersion.Minorプロパティは整数値である。
この3つのプロパティの値の組み合わせとWindows OSの対応関係を次の表にまとめた。
| Platformプロパティ | PlatformID.Win32Windows | PlatformID.Win32NT | ||||||
| Version.Majorプロパティ | 4 | 4 | 5 | 6 | ||||
| Version.Minorプロパティ | 0 | 10 | 90 | 0 | 0 | 1 | 2 | 0 |
| Windows OS | 95*1 | 98 | Me | NT 4.0*2 | 2000 | XP | 2003 | Vista |
| Windows OSの判別表 | ||||||||
| *1 すべての.NET Frameworkは、Windows 95上では動作しないので実際にはこの組み合わせはあり得ない。 | ||||||||
| *2 .NET Framework 2.0は、Windows NT 4.0上では動作しないので実際にはこの組み合わせはあり得ない。 | ||||||||
.NET Framework 2.0のOperatingSystemクラスでは、これらのプロパティに加えてServicePackプロパティが追加されている。このプロパティからはWindows OSに提供されたサービス・パック名(例えば「Service Pack 2」など)を得られる。
これらの組み合わせを使ってWindows OSのバージョンを判別するサンプル・プログラムを次に示す。
|
||
| Windows OSのバージョンを取得するサンプル・プログラム(上:C#、下:VB) |
Windows Vista Ultimate環境でこれをコマンド・プロンプトから実行すると、
Windows Vista (Platform Win32NT Version 6.0 Build 6000)
と出力された。
なお、OSのバージョンによってアプリケーションの起動をブロックするようなコードを実装する場合、将来のバージョンのOSでもプログラムがそのまま動作するように、「6.0(=Vista)以降」というロジックもあらかじめ実装しておいた方がよいだろう。
たいていの場合、本稿のバージョンの判別方法で事足りるだろうが、アプリケーションによってはさらに細かなエディションの判定、例えばWindows Vistaの「Ultimate」と「Home Basic」の違いなども判別しなければならないケースもあるだろう。この方法については「TIPS:Windows OSのエディションまで細かく判別するには?【Vista対応】」で紹介している。![]()
| 利用可能バージョン:.NET Framework 2.0のみ カテゴリ:クラス・ライブラリ 処理対象:Windows環境 使用ライブラリ:OperatingSystemクラス(System名前空間) 使用ライブラリ:Environmentクラス(System名前空間) 使用ライブラリ:PlatformID列挙体(System名前空間) 関連TIPS:Windows OSの種類やバージョンを判別するには? 関連TIPS:Windows OSのエディションまで細かく判別するには?【Vista対応】 |
|
||||||||||||||||||||
| 「.NET TIPS」 |
TechTargetジャパン
- 新人プログラマーのためのInsider.NETの歩き方 2012 (2012/5/22)
晴れて.NETプログラマーとなる新人が効率的に開発技術を習得するには? 大量にある記事群の中から新人が読むべきお勧めを厳選して紹介 - jQuery MobileでJavaScriptプログラミング (2012/5/17)
jQuery Mobileは手軽なだけでなく、JavaScriptのAPIも充実しており、独自機能の実装もできる。今回は「グローバル設定」と「イベント」を解説 - Windows上で開発するための開発環境構築入門 (2012/5/16)
Windowsを使ってチームで開発している? なのにサーバOSを設定・運用した経験がない? そうなら、今すぐ学ぼう - 「コントラクト」でアプリのサンドボックスを乗り越える! (2012/5/11)
Metroスタイル・アプリはサンドボックスの中で動作する。それを乗り越えてほかのアプリと連携する仕組み「コントラクト」を解説
|
|
キャリアアップ
スポンサーからのお知らせ
- - PR -
イベントカレンダー
- - PR -


