人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

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も違いが書いていないので、ならば別の方法で調べられるんじゃないかと考えているのですが、見つけられず悩んでいます。

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

●質問者: くじぇ
●カテゴリ:コンピュータ
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● oil999
●220ポイント ベストアンサー

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


くじぇさんのコメント
oil999さん、興味を持っていただいてありがとうございます。 Windows8と2012は、dwMajorVersionとdwMinorVersionが共に同じ値なので、wProductTypeで判定すると考えれば良いのでしょうか?

oil999さんのコメント
その通りです。

くじぇさんのコメント
oil999 さんありがとうございました。 お陰様でWindows2008を判定することができるようになりました。 WindowsServer2012が判定できているかどうかは・・・はてなの懸賞でも狙ってみようかと思います。 http://b.hatena.ne.jp/articles/201211/11566

2 ● a-kuma3
●80ポイント

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.

くじぇさんのコメント
a-kuma3さんありがとうございます。
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ