C++学习之:判断系统版本

很多时候我们要根据系统的不同版本进行不同的操作,下面给出了如何判断Windows操作系统的版本函数,希望对大家有所帮助。

  
  
  
  
  1. int VRVGetSystemVersion(SYSTEM_VERSION *pnSystemVersion) 
  2.     OSVERSIONINFO osvi; 
  3.     BOOL bOsVersionInfoEx; 
  4.  
  5.     *pnSystemVersion = ENUM_SYSTEM_UNKOWN; 
  6.  
  7.     memset(&osvi, 0, sizeof(OSVERSIONINFO)); 
  8.     osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFO); 
  9.  
  10.     if (!(bOsVersionInfoEx = GetVersionEx((OSVERSIONINFO *) &osvi)) ) 
  11.     { 
  12.         osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFO); 
  13.         if (! GetVersionEx( (OSVERSIONINFO *) &osvi) ) 
  14.         { 
  15.             return FALSE; 
  16.         } 
  17.     } 
  18.  
  19.     switch (osvi.dwPlatformId) 
  20.     { 
  21.         case VER_PLATFORM_WIN32_NT: 
  22.             if (osvi.dwMajorVersion == 6 && osvi.dwMinorVersion == 0) 
  23.             { 
  24.                 *pnSystemVersion = ENUM_SYSTEM_WIN_VISTA; 
  25.             } 
  26.  
  27.             if ( osvi.dwMajorVersion == 5 && osvi.dwMinorVersion == 2) 
  28.             { 
  29.                 *pnSystemVersion = ENUM_SYSTEM_WIN_SER_2003; 
  30.             } 
  31.  
  32.             if ( osvi.dwMajorVersion == 5 && osvi.dwMinorVersion == 1) 
  33.             { 
  34.                 *pnSystemVersion = ENUM_SYSTEM_WIN_XP; 
  35.             } 
  36.  
  37.             if (osvi.dwMajorVersion == 5 && osvi.dwMinorVersion == 0) 
  38.             { 
  39.                 *pnSystemVersion = ENUM_SYSTEM_WIN_2000; 
  40.             } 
  41.  
  42.             if ( osvi.dwMajorVersion <= 4) 
  43.             { 
  44.                 *pnSystemVersion = ENUM_SYSTEM_WIN_NT; 
  45.             } 
  46.  
  47.             if (osvi.dwMajorVersion == 6 && osvi.dwMinorVersion == 1) 
  48.             { 
  49.                 *pnSystemVersion = ENUM_SYSTEM_WIN_7; 
  50.             } 
  51.             break
  52.         case VER_PLATFORM_WIN32_WINDOWS: 
  53.             if (osvi.dwMajorVersion == 4 && osvi.dwMinorVersion == 0 ) 
  54.             { 
  55.                 *pnSystemVersion = ENUM_SYSTEM_WIN_95; 
  56.             } 
  57.  
  58.             if (osvi.dwMajorVersion == 4 && osvi.dwMinorVersion == 10) 
  59.             { 
  60.                 *pnSystemVersion = ENUM_SYSTEM_WIN_98; 
  61.             } 
  62.  
  63.             if (osvi.dwMajorVersion == 4 && osvi.dwMinorVersion == 90) 
  64.             { 
  65.                 *pnSystemVersion = ENUM_SYSTEM_WIN_ME; 
  66.             } 
  67.  
  68.             break
  69.         default
  70.             *pnSystemVersion = ENUM_SYSTEM_UNKOWN; 
  71.             break
  72.  
  73.     } 
  74.     return TRUE; 

你可能感兴趣的:(操作系统版本)