//判断当前操作系统版本
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";
else
OperatingSystem = "Unknow Operating System";
}
上述代码参考MSDN文档OSVERSIONINFO structure https://msdn.microsoft.com/en-us/library/windows/desktop/ms724834(v=vs.85).aspx
windows系统版本判断
最新推荐文章于 2023-01-16 11:10:20 发布