社本@元ネオニート Blog

社本@元ネオニート (元々ワック) のいたずら書き (for Programmers)

AILight Banner
AILight Blog

プロフィール

社本@元ネオニート Blog
働いたら負けかなと思っていたのですが。。とうとう働き始めました。アメリカのシアトル・エリアにある企業向けのバックアップソフトを開発している会社です。日本人は私だけ。なんとか。。やっていけてるようです。

目次

Blog 利用状況

記事分類

過去の記事

タグ

OS バージョンチェック

---
OS のバージョンチェックには GetVersionEx() を使っています。もし、OSVERSIONINFO 構造体の dwPlatformId メンバーが VER_PLATFORM_WIN32_WINDOWS だったならば、OS は Windows 9x なので、バージョンチェックは終了です(Windows 9x をサポートしないため)。

dwPlatformId が VER_PLATFORM_WIN32_NT だったならば、OSVERSIONINFO の dwMajorVersion と dwMinorVersion メンバーを確認します。

dwMajorVersion が5より小さいならば、Windows NT 4.0 以前の OS であることがわかります(.NET Framework 2.0 では Windows NT 4.0 以前の OS はサポートしないので、ここでセットアップは終了です)。

dwMajorVersion が5以上ならば、Windows 2000 以降の OS であることがわかります。正確に OS のバージョンを把握するには、以下のように dwMajorVersion と dwMinorVersion を使って判断します。

Windows 2000: dwMajorVersion =5 かつ dwMinorVersion =0 の場合 
Windows XP: dwMajorVersion =5 かつ dwMinorVersion =1 の場合 
Windows Server 2003: dwMajorVersion=5 かつ dwMinorVersion =2 の場合 
Windows Vista 以降: dwMajorVersion=6
---
私のサイト(for Programmers)に、GetVersionEx API を使ったサンプルコードを
紹介していますので、暇な方は見てやってください。


■Win2000 or Win98以上かどうかを調査 - for Programmers
http://www.wac-jp.com/programmers/win32/IsWinNT5orWin98.html

投稿日時 : 2006年7月11日 21:06


コメントを追加

#  re: OS バージョンチェック 2006年7月12日 12:32 とっちゃん

おいらは、OSVERSIONINFOEX 構造体を使ってます。
もちろん、古いOSの場合は失敗するので OSVERSIONINFO で取り直します。

EX を使うと、OSのバージョンやSP以外にも、Home/Pro の判定や、ドメインコントローラかなども判るので
アプリによっては大変便利な場合もあります。

でも、実際のブロックコードとして使ったことはありませんw

タイトル
名前
URL
コメント