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; 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章