How I can check in C++ if Windows version installed on computer is Windows Vista and higher (Windows 7)?
How I can check in C++ if Windows version installed on computer is Windows Vista and higher (Windows 7)?
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;
You could use the GetVersion() or GetVersionEx() function in the kernel32.dll. This two functions are only available on Windows 2000 or later.
To read more about this look at http://msdn.microsoft.com/en-us/library/ms724451%28VS.85%29.aspx.