windows系统版本判断

来源:互联网 发布:nba雄鹿队数据 编辑:程序博客网 时间:2024/05/21 21:35
//判断当前操作系统版本void JudgeOperatingSystem(string &OperatingSystem){SYSTEM_INFO info;GetSystemInfo(&info);OSVERSIONINFOEX osvi;    ZeroMemory(&osvi, sizeof(OSVERSIONINFOEX));    osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEX);    GetVersionEx((OSVERSIONINFO *)&osvi);if(osvi.dwMajorVersion == 6 && osvi.dwMinorVersion == 3 && osvi.wProductType == VER_NT_WORKSTATION)OperatingSystem = "Windows 8.1";else if(osvi.dwMajorVersion == 6 && osvi.dwMinorVersion == 3 && osvi.wProductType != VER_NT_WORKSTATION)OperatingSystem = "Windows Server 2012 R2";else if(osvi.dwMajorVersion == 6 && osvi.dwMinorVersion == 2 && osvi.wProductType == VER_NT_WORKSTATION)OperatingSystem = "Windows 8";else if(osvi.dwMajorVersion == 6 && osvi.dwMinorVersion == 2 && osvi.wProductType != VER_NT_WORKSTATION)OperatingSystem = "Windows Server 2012";else if(osvi.dwMajorVersion == 6 && osvi.dwMinorVersion == 1 && osvi.wProductType == VER_NT_WORKSTATION)OperatingSystem = "Windows 7";else if(osvi.dwMajorVersion == 6 && osvi.dwMinorVersion == 1 && osvi.wProductType != VER_NT_WORKSTATION)OperatingSystem = "Windows Server 2008 R2";else if(osvi.dwMajorVersion == 6 && osvi.dwMinorVersion == 0 && osvi.wProductType != VER_NT_WORKSTATION)OperatingSystem = "Windows Server 2008";else if(osvi.dwMajorVersion == 6 && osvi.dwMinorVersion == 0 && osvi.wProductType == VER_NT_WORKSTATION)OperatingSystem = "Windows Vista";else if(osvi.dwMajorVersion == 5 && osvi.dwMinorVersion == 2 && GetSystemMetrics(SM_SERVERR2) != 0)OperatingSystem = "Windows Server 2003 R2";else if(osvi.dwMajorVersion == 5 && osvi.dwMinorVersion == 2 && GetSystemMetrics(SM_SERVERR2) == 0)OperatingSystem = "Windows Server 2003";else if(osvi.dwMajorVersion == 5 && osvi.dwMinorVersion == 2 && (osvi.wSuiteMask & VER_SUITE_WH_SERVER))OperatingSystem = "Windows Home Server";else if(osvi.dwMajorVersion == 5 && osvi.dwMinorVersion == 2 && (osvi.wProductType == VER_NT_WORKSTATION) && (info.wProcessorArchitecture==PROCESSOR_ARCHITECTURE_AMD64))OperatingSystem = "Windows XP Professional x64 Edition";else if(osvi.dwMajorVersion == 5 && osvi.dwMinorVersion == 1)OperatingSystem = "Windows XP";else if(osvi.dwMajorVersion == 5 && osvi.dwMinorVersion == 0)OperatingSystem = "Windows 2000";elseOperatingSystem = "Unknow Operating System";}
上述代码参考MSDN文档OSVERSIONINFO structure https://msdn.microsoft.com/en-us/library/windows/desktop/ms724834(v=vs.85).aspx

OSVERSIONINFO structure

0 0
原创粉丝点击