获取系统版本详细信息

// GetWinVer.h 
#ifndef GETWINVER_H 
#define GETWINVER_H 
#define WUNKNOWN        0 
#define W9XFIRST        1 
#define W95                        1 
#define W95SP1                2 
#define W95OSR2                3 
#define W98                        4 
#define W98SP1                5 
#define W98SE                6 
#define WME                        7 
#define W9XLAST                99 
#define WNTFIRST        101 
#define WNT351                101 
#define WNT4                102 
#define W2K                        103 
#define WXP                        104 
#define W2003                105 
#define WNTLAST                199 
#define WCEFIRST        201 
#define WCE                        201 
#define WCELAST                299 
#define VER_PLATFORM_WIN32s             0 
#define VER_PLATFORM_WIN32_WINDOWS      1 
#define VER_PLATFORM_WIN32_NT           2 
#define VER_PLATFORM_WIN32_CE           3 
/* 
        dwPlatFormID  dwMajorVersion  dwMinorVersion  dwBuildNumber 
95              1              4               0             950 
95 SP1       1              4               0        >950 && <=1080 
95 OSR2     1              4             <10           >1080 
98             1              4              10            1998 
98 SP1       1              4              10       >1998 && <2183 
98 SE        1              4              10          >=2183 
ME             1              4              90            3000 
NT 3.51      2              3              51 
NT 4           2              4               0            1381 
2000          2              5               0            2195 
XP              2              5               1 
2003          2              5               2            2600  
CE             3 
*/ 
/// 
// GetWinVer 
int GetWinVer() 
       int nVersion = WUNKNOWN; 
       OSVERSIONINFO osinfo; 
       osinfo.dwOSVersionInfoSize = sizeof(OSVERSIONINFO); 
       if (!GetVersionEx(&osinfo)) 
               return FALSE; 
       DWORD dwPlatformId   = osinfo.dwPlatformId; 
       DWORD dwMinorVersion = osinfo.dwMinorVersion; 
       DWORD dwMajorVersion = osinfo.dwMajorVersion; 
       DWORD dwBuildNumber  = osinfo.dwBuildNumber & 0xFFFF;        // Win 95 needs this 
        
       if ((dwPlatformId == VER_PLATFORM_WIN32_WINDOWS) && (dwMajorVersion == 4)) 
       { 
               if ((dwMinorVersion < 10) && (dwBuildNumber == 950)) 
               { 
                       nVersion = W95; 
               } 
               else if ((dwMinorVersion < 10) &&  
                               ((dwBuildNumber > 950) && (dwBuildNumber <= 1080))) 
               { 
                       nVersion = W95SP1; 
               } 
               else if ((dwMinorVersion < 10) && (dwBuildNumber > 1080)) 
               { 
                       nVersion = W95OSR2; 
               } 
               else if ((dwMinorVersion == 10) && (dwBuildNumber == 1998)) 
               { 
                       nVersion = W98; 
               } 
               else if ((dwMinorVersion == 10) &&  
                               ((dwBuildNumber > 1998) && (dwBuildNumber < 2183))) 
               { 
                       nVersion = W98SP1; 
               } 
               else if ((dwMinorVersion == 10) && (dwBuildNumber >= 2183)) 
               { 
                       nVersion = W98SE; 
               } 
               else if (dwMinorVersion == 90) 
               { 
                       nVersion = WME; 
               } 
       } 
       else if (dwPlatformId == VER_PLATFORM_WIN32_NT) 
       { 
               if ((dwMajorVersion == 3) && (dwMinorVersion == 51)) 
               { 
                       nVersion = WNT351; 
               } 
               else if ((dwMajorVersion == 4) && (dwMinorVersion == 0)) 
               { 
                       nVersion = WNT4; 
               } 
               else if ((dwMajorVersion == 5) && (dwMinorVersion == 0)) 
               { 
                       nVersion = W2K; 
               } 
               else if ((dwMajorVersion == 5) && (dwMinorVersion == 1)) 
               { 
                       nVersion = WXP; 
               } 
               else if ((dwMajorVersion == 5) && (dwMinorVersion == 2)) 
               { 
                       nVersion = W2003; 
               } 
       } 
       else if (dwPlatformId == VER_PLATFORM_WIN32_CE) 
       { 
               nVersion = WCE; 
       } 
       return nVersion; 
#endif //GETWINVER_H 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值