• 締切済み

API関数でOS判定

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

みんなの回答

  • selenity
  • ベストアンサー率41% (324/772)
回答No.2

できればOSVERSIONINFO.dwBuildNumberまで見れば、 Win-Me、Win98SE、Win98、Win95の区別や、製品版とβ版との 区別もできますよ。 szCSDVersionを見れば、サービスパックの適用状態まで 判断できます。

  • haporun
  • ベストアンサー率40% (230/562)
回答No.1

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