完整获取各种Windows系统版本

来源:互联网 发布:淘宝卖家如何批量发货 编辑:程序博客网 时间:2024/06/05 08:10
 

typedef enum _WIN_VER{
    eUnknown=0,
    eWin32s=39,
    eWin95=40,
    eWinNt=401,
    eWin98=41,
    eWinMe=49,
    eWin2000=50,
    eWinXp=51,
    eWin2003=52,
    eVista=60,
    eWin2008=601,
    eWin7=61
}WIN_VER;
//获取各种Windows系统版本
WIN_VER GetSystemVersion()
{

 OSVERSIONINFOEX osvi;
 WIN_VER verRet = eUnknown;

 ZeroMemory(&osvi,sizeof(osvi));
 osvi.dwOSVersionInfoSize = sizeof(osvi);

 if (!GetVersionEx((OSVERSIONINFO*)&osvi))
 {
  osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
  if (!GetVersionEx((OSVERSIONINFO*)&osvi))
  {
   return verRet;
  }
 }

 //判断系统类型
 switch(osvi.dwPlatformId)
 {
 case VER_PLATFORM_WIN32_NT:
  if (4 >= osvi.dwMajorVersion)
  {
   verRet = eWinNt;
  }
  else if (5 == osvi.dwMajorVersion)
  {
   if (0 == osvi.dwMinorVersion)
   {
    verRet = eWin2000;
   }
   else if (1 == osvi.dwMinorVersion)
   {
    verRet = eWinXp;
   }
   else if(2 == osvi.dwMinorVersion)
   {
    verRet = eWin2003;
   }
  }
  else if (6 == osvi.dwMajorVersion)
  {
   if (0 == osvi.dwMinorVersion)
   {
    if (osvi.wProductType == VER_NT_SERVER || osvi.wProductType == VER_NT_DOMAIN_CONTROLLER)
     verRet = eWin2008;
    else
     verRet = eVista;
   }
   else if (1 == osvi.dwMinorVersion)
   {
    verRet = eWin7;
   }
  }
  break;
 case VER_PLATFORM_WIN32_WINDOWS:
  if (4 == osvi.dwMajorVersion)
  {
   if(0 == osvi.dwMinorVersion)
   {
    verRet= eWin95;
   }
   else if (10 == osvi.dwMinorVersion)
   {
    verRet= eWin98;
   }
   else if(90 == osvi.dwMinorVersion)
   {
    verRet= eWinMe;
   }
  }
  break;
 case VER_PLATFORM_WIN32s:
  verRet = eWin32s;
  break;
 }
 return verRet;
}

原创粉丝点击