• 締切
  • 困ってます

API関数でOS判定

  • 質問No.10810
  • 閲覧数341
  • ありがとう数4
  • 回答数2

お礼率 7% (1/13)

教えてください。
Win32のAPI関数「GetVersionEx」を使用して、OSの判定をおおなっているのですが、「Windows2000」「WindowsCE」「WindowsME」の判定方法がわかりません。その他の「WindowsNT」「Windows3.51」「Windows95/98」はAPI関数の戻り値(構造体)の「プラットフォームID」と「マイナーバージョン」でわかるのですが…。
どなたか回答をお願いします。

ちなみに、「WindowsME」でのマイナーバージョンを調べてらら「90」の値が返ってきました。これは、「90未満」「90以下」「90以上」「90超」のどれなんでしょうか…。

回答 (全2件)

  • 回答No.2

ベストアンサー率 41% (324/772)

できればOSVERSIONINFO.dwBuildNumberまで見れば、
Win-Me、Win98SE、Win98、Win95の区別や、製品版とβ版との
区別もできますよ。

szCSDVersionを見れば、サービスパックの適用状態まで
判断できます。
  • 回答No.1

ベストアンサー率 40% (230/562)

2000はNTの区分なので、dwPlatformIdにはVER_PLATFORM_WIN32_NTが入ります。
2000はNT4の後継で、dwMajorVersionに5が入るはずですが。

MEは持ってないのでわかりません。
dwPlatformId がVER_PLATFORM_WIN32_WINDOWSなのは確かですが、おそらく、dwMajorVersionは5になるのではないでしょうか。
95も98も4なので、もしかしたらMEも4かもしれませんが。

細かいところはメジャーバージョン+マイナーバージョン÷100で判別します。
関連するQ&A

その他の関連するQ&Aをキーワードで探す

ピックアップ

ページ先頭へ