I'm trying to detect a user's OS but I'm not getting the correct results. Is there something I'm missing?
Code:
OSVERSIONINFO osInfo;
// Get Windows version.
ZeroMemory(&osInfo, sizeof(osInfo));
GetVersionEx(&osInfo);
if(osInfo.dwPlatformId == 1)
{
if((osInfo.dwMajorVersion == 4) && (osInfo.dwMinorVersion == 0))
objSystemInfo.OperatingSystem.Windows95 = true;
else if((osInfo.dwMajorVersion == 4) && (osInfo.dwMinorVersion == 10))
objSystemInfo.OperatingSystem.Windows98 = true;
else if((osInfo.dwMajorVersion == 4) && (osInfo.dwMinorVersion == 90))
objSystemInfo.OperatingSystem.WindowsME = true;
}
// Win NT
else if(osInfo.dwPlatformId == 2)
{
if((osInfo.dwMajorVersion == 4) && (osInfo.dwMinorVersion == 0))
objSystemInfo.OperatingSystem.WindowsNT4 = true;
else if((osInfo.dwMajorVersion == 5) && (osInfo.dwMinorVersion == 0))
objSystemInfo.OperatingSystem.Windows2000 = true;
else if((osInfo.dwMajorVersion == 5) && (osInfo.dwMinorVersion == 1))
objSystemInfo.OperatingSystem.WindowsXP = true;
else if((osInfo.dwMajorVersion == 5) && (osInfo.dwMinorVersion == 2))
{
if(GetSystemMetrics(89))
objSystemInfo.OperatingSystem.WindowsServer2003R2 = true;
}
else if((osInfo.dwMajorVersion == 6) && (osInfo.dwMinorVersion == 0))
objSystemInfo.OperatingSystem.WindowsVista = true;
else if((osInfo.dwMajorVersion == 6) && (osInfo.dwMinorVersion == 1))
objSystemInfo.OperatingSystem.Windows7 = true;
}