Check Windows version

Viewed 35172

How I can check in C++ if Windows version installed on computer is Windows Vista and higher (Windows 7)?

7 Answers

Use GetVersionEx API function defined in kernel32.dll:

bool IsWindowsVistaOrHigher() {
   OSVERSIONINFO osvi;
   ZeroMemory(&osvi, sizeof(OSVERSIONINFO));
   osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
   GetVersionEx(&osvi);
   return osvi.dwMajorVersion >= 6;
}

Similar to other tests for checking the version of Windows NT:

OSVERSIONINFO   vi;

memset (&vi, 0, sizeof vi);
vi .dwOSVersionInfoSize = sizeof vi;
GetVersionEx (&vi);
if (vi.dwPlatformId == VER_PLATFORM_WIN32_NT  &&  vi.dwMajorVersion >= 6)

This Microsoft support page gives you details for older versions.

To determine the operating system that is running on a given system, the following data is needed:

              95  98  ME  NT 4  2000  XP
PlatformID    1   1   1   2     2     2
Major version 4   4   4   4     5     5
Minor version 0   10  90  0     0     1

You could implement the code and run it on a Vista and Windows-7 machine to check the values returned.

To get the operating system version information make the following call:

System::OperatingSystem *osInfo = System::Environment::OSVersion;
Related