OS(Windows)のバージョンを取得するには?

解決


kazumarin  2001-11-27 07:38:25  No: 316

質問がございます。
Delphiで自PCのOSのバージョンを知りたいのですが
どうやったら簡単に取得できますか?
APIのGetVersionExを使うのではと思うのですが・・・。
取得したいのはWindowsの場合のみで、知りたいバージョンは
95、98、2000です。
宜しくお願い致します。


にしの  2001-11-27 10:42:50  No: 317

GetVersionExであってます。
このAPIだけで、簡単に取れますよ。
引数のTOSVersionInfo型の変数の、dwOSVersionInfoSizeメンバーに、TOSVersionInfoのサイズを設定してから呼び出します。
成功すれば、その変数にバージョンが入ります。


追伸くん  2001-11-27 11:28:42  No: 318

※GetVersionEx()での OSの判別。

OSVERSIONINFO 構造体のメンバー値
(WinNT5.0以降では構造体がOSVERSIONINFOEXになるらしい)

dwPlatformId :
  VER_PLATFORM_WIN32_WINDOWS  ⇒  Win95/98
  VER_PLATFORM_WIN32_NT       ⇒  WinNT/2000

dwMajorVersion :
  4      ⇒  WinNT4
  5      ⇒  Win2000

dwMinorVersion :
  0      ⇒  Win95
  0以外  ⇒  Win98

dwBuildNumber メンバの下位ワードが 1000 よりも大きいとき、Win95 OSR2以降


便乗くん  2001-11-27 11:51:55  No: 319

WinXPでのバージョン情報はどうなっているんでしょう?
XP PRO でも XP HOME でも
dwPlatformId は VER_PLATFORM_WIN32_NT になるんでしょうか?


kazumarin  2001-11-27 19:44:43  No: 320

うまくバージョン情報の取得ができました。
にしのさん、追伸さん、ありがとうございました。
また何かありましたら宜しくお願いします。
「解決」チェックをしようと思ったのですが
便乗さんの質問がまだ解決されていないので
最終「解決」チェックは便乗さんにお願いしてもいいでしょうか?
ちなみにXPについては触ったことないので
よくわからないです。申し訳ありません。


にしの  2001-11-27 20:16:26  No: 321

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/sysinfo/sysinfo_1o1e.asp
ここを見る限りでは、
dwMajorVersion = 5
dwMinorVersion = 1
のときにXPになります。
Pro,Homeの違いは、wSuiteMaskで判断するようです。


便乗くん  2001-11-28 09:22:09  No: 322

ありがとうございました。m(__)m
dwMajorVersion = 5
dwMinorVersion = 1
なら、XP の PRO か HOME で、
wSuiteMask が VER_SUITE_PERSONAL 以外ならば、XP HOME ではない
というなんですね。


※返信する前に利用規約をご確認ください。








  このエントリーをはてなブックマークに追加