VB.NET2012(VisualBasic)で質問です。プログラム上から自分が起動しているOSが、WindowsServer2012かWindows8なのかをアプリケーションより自動的に調べる方法はありますか?


http://msdn.microsoft.com/en-us/library/windows/desktop/aa370556(v=vs.85).aspx によると
WindowsServer2012とWindows8は、VersionNT WindowsBuild ServicePackLevelも違いが書いていないので、ならば別の方法で調べられるんじゃないかと考えているのですが、見つけられず悩んでいます。

よろしくお願いいたします。

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2012/11/27 15:00:24
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:oil999 No.1

回答回数1728ベストアンサー獲得回数320

ポイント220pt

OSのバージョン情報はEnvironmentクラスのOSVersionプロパティにより取得できます。
http://msdn.microsoft.com/ja-jp/library/system.environment.osversion(v=VS.80).aspx

.NET 4では、ComputerInfoクラスから取得します。
http://msdn.microsoft.com/ja-jp/library/vstudio/microsoft.visualbasic.devices.computerinfo.osversion(v=vs.100).aspx

Windows8と2012のバージョン番号については下記をご覧下さい。
http://www.westbrook.jp/Tips/Win/OSVersion.html

他1件のコメントを見る
id:oil999

その通りです。

2012/11/26 23:09:07
id:halohalolin

oil999 さんありがとうございました。

お陰様でWindows2008を判定することができるようになりました。
WindowsServer2012が判定できているかどうかは・・・はてなの懸賞でも狙ってみようかと思います。
http://b.hatena.ne.jp/articles/201211/11566

2012/11/27 14:57:22

その他の回答1件)

id:oil999 No.1

回答回数1728ベストアンサー獲得回数320ここでベストアンサー

ポイント220pt

OSのバージョン情報はEnvironmentクラスのOSVersionプロパティにより取得できます。
http://msdn.microsoft.com/ja-jp/library/system.environment.osversion(v=VS.80).aspx

.NET 4では、ComputerInfoクラスから取得します。
http://msdn.microsoft.com/ja-jp/library/vstudio/microsoft.visualbasic.devices.computerinfo.osversion(v=vs.100).aspx

Windows8と2012のバージョン番号については下記をご覧下さい。
http://www.westbrook.jp/Tips/Win/OSVersion.html

他1件のコメントを見る
id:oil999

その通りです。

2012/11/26 23:09:07
id:halohalolin

oil999 さんありがとうございました。

お陰様でWindows2008を判定することができるようになりました。
WindowsServer2012が判定できているかどうかは・・・はてなの懸賞でも狙ってみようかと思います。
http://b.hatena.ne.jp/articles/201211/11566

2012/11/27 14:57:22
id:a-kuma3 No.2

回答回数4973ベストアンサー獲得回数2154

ポイント80pt

msdn から OSVERSIONINFOEX 構造体の説明です。

Operating systemVersion numberdwMajorVersiondwMinorVersionOther
Windows 86.262OSVERSIONINFOEX.wProductType == VER_NT_WORKSTATION
Windows Server 20126.262OSVERSIONINFOEX.wProductType != VER_NT_WORKSTATION
http://msdn.microsoft.com/en-us/library/windows/desktop/ms724833%28v=vs.85%29.aspx


これ、分かってないとはまりそうですね。

wProductType

ValueMeaning
VER_NT_SERVER
0x0000003
The operating system is Windows Server 2012, Windows Server 2008 R2, Windows Server 2008, Windows Server 2003, or Windows 2000 Server.
Note that a server that is also a domain controller is reported as VER_NT_DOMAIN_CONTROLLER, not VER_NT_SERVER.
id:halohalolin

a-kuma3さんありがとうございます。

2012/11/27 14:58:53

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません