質問がございます。
Delphiで自PCのOSのバージョンを知りたいのですが
どうやったら簡単に取得できますか?
APIのGetVersionExを使うのではと思うのですが・・・。
取得したいのはWindowsの場合のみで、知りたいバージョンは
95、98、2000です。
宜しくお願い致します。
GetVersionExであってます。
このAPIだけで、簡単に取れますよ。
引数のTOSVersionInfo型の変数の、dwOSVersionInfoSizeメンバーに、TOSVersionInfoのサイズを設定してから呼び出します。
成功すれば、その変数にバージョンが入ります。
※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以降
WinXPでのバージョン情報はどうなっているんでしょう?
XP PRO でも XP HOME でも
dwPlatformId は VER_PLATFORM_WIN32_NT になるんでしょうか?
うまくバージョン情報の取得ができました。
にしのさん、追伸さん、ありがとうございました。
また何かありましたら宜しくお願いします。
「解決」チェックをしようと思ったのですが
便乗さんの質問がまだ解決されていないので
最終「解決」チェックは便乗さんにお願いしてもいいでしょうか?
ちなみにXPについては触ったことないので
よくわからないです。申し訳ありません。
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/sysinfo/sysinfo_1o1e.asp
ここを見る限りでは、
dwMajorVersion = 5
dwMinorVersion = 1
のときにXPになります。
Pro,Homeの違いは、wSuiteMaskで判断するようです。
ありがとうございました。m(__)m
dwMajorVersion = 5
dwMinorVersion = 1
なら、XP の PRO か HOME で、
wSuiteMask が VER_SUITE_PERSONAL 以外ならば、XP HOME ではない
というなんですね。
ツイート | ![]() |