OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
解決
済み

OSがWindowsXPかの判断について

  • 暇なときにでも
  • 質問No.209197
  • 閲覧数248
  • ありがとう数0
  • 気になる数0
  • 回答数2
  • コメント数0

お礼率 14% (1/7)

VC++でOSによって処理内容を変更したいのですがWindowsXPの判断はどういう風にすればいいのでしょうか?
NTとかだと

OSVERSIONINFO info;
ZeroMemory(&info,sizeof(OSVERSIONINFO));
info.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);

BOOL bRet;
bRet = GetVersionEx(&info);
if(bRet == FALSE)
return FALSE;

if(info.dwPlatformId == VER_PLATFORM_WIN32_NT)
・・・

のように「VER_PLATFORM_WIN32_NT」と判断できますが、
だれか教えてください。
よろしくお願いします。
通報する
  • 回答数2
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

質問者が選んだベストアンサー

  • 回答No.2
レベル12

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

最新のヘッダでなくとも、
OSVERSIONINFO.dwBuildNumber
OSVERSIONINFO.dwMajorVersion
OSVERSIONINFO.dwMinorVersion
OSVERSIONINFO.szCSDVersion
の各組み合わせを見ることにより、OSを判別できます。

inthefloiさんが書いた参考URLを見れば、WinXPは
dwMajorVersion==5
dwMinorVersion==1
だと書いてあります。
さらに
wProductType==VER_NT_WORKSTATIONかつ
wSuiteMaskのVER_SUITE_PERSONALビットが立って
いればWinXP HomeEdだと区別できます。
-PR-
-PR-

その他の回答 (全1件)

  • 回答No.1

OSVERSIONINFOEX を使用するのですが、最新のヘッダが無い場合は、応急処置として、自力で書き換える事になると思います。 ...続きを読む
OSVERSIONINFOEX を使用するのですが、最新のヘッダが無い場合は、応急処置として、自力で書き換える事になると思います。


このQ&Aのテーマ
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

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

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ