http://blog.csdn.net/wjkaola123/article/details/51721348
GetVersionEx, 该方法在WIN8.1以后无效 参看: https://msdn.microsoft.com/en-us/library/ms724451.aspx
microsoft提供的版本帮助
https://msdn.microsoft.com/en-us/library/dn424972.aspx
Version Helper functions
The following functions can be used to determine the current operating system version or identify whether it is a Windows or Windows Server release. These functions provide simple tests that use the VerifyVersionInfo function and the recommended greater than or equal to comparisons that are proven as a robust means to determine the operating system version.
Function | Description |
---|---|
IsWindowsXPOrGreater |
Indicates if the current OS version matches, or is greater than, the Windows XP version. |
IsWindowsXPSP1OrGreater |
Indicates if the current OS version matches, or is greater than, the Windows XP with Service Pack 1 (SP1) version. |
IsWindowsXPSP2OrGreater |
Indicates if the current OS version matches, or is greater than, the Windows XP with Service Pack 2 (SP2) version. |
IsWindowsXPSP3OrGreater |
Indicates if the current OS version matches, or is greater than, the Windows XP with Service Pack 3 (SP3) version. |
IsWindowsVistaOrGreater |
Indicates if the current OS version matches, or is greater than, the Windows Vista version. |
IsWindowsVistaSP1OrGreater |
Indicates if the current OS version matches, or is greater than, the Windows Vista with Service Pack 1 (SP1) version. |
IsWindowsVistaSP2OrGreater |
Indicates if the current OS version matches, or is greater than, the Windows Vista with Service Pack 2 (SP2) version. |
IsWindows7OrGreater |
Indicates if the current OS version matches, or is greater than, the Windows 7 version. |
IsWindows7SP1OrGreater |
Indicates if the current OS version matches, or is greater than, the Windows 7 with Service Pack 1 (SP1) version. |
IsWindows8OrGreater |
Indicates if the current OS version matches, or is greater than, the Windows 8 version. |
IsWindows8Point1OrGreater |
Indicates if the current OS version matches, or is greater than, the Windows 8.1 version. For Windows 10, IsWindows8Point1OrGreater returns false unless the application contains a manifest that includes a compatibility section that contains the GUIDs that designate Windows 8.1 and/or Windows 10. |
IsWindows10OrGreater |
Indicates if the current OS version matches, or is greater than, the Windows 10 version. For Windows 10, IsWindows10OrGreater returns false unless the application contains a manifest that includes a compatibility section that contains the GUID that designates Windows 10. |
IsWindowsServer |
Indicates if the current OS is a Windows Server release. Applications that need to distinguish between server and client versions of Windows should call this function. |
IsWindowsVersionOrGreater |
Note You should only use this function if the other provided version helper functions do not fit your scenario.
Indicates if the current OS version matches, or is greater than, the provided version information. This function is useful in confirming a version of Windows Server that doesn't share a version number with a client release. |
Example
The inline functions defined in the VersionHelpers.h header file let you verify the operating system version by returning a Boolean value when testing for a version of Windows.
For example, if your application requires Windows 8 or later, use the following test.
#include <VersionHelpers.h> … if (!IsWindows8OrGreater()) { MessageBox(NULL, "You need at least Windows 8", "Version Not Supported", MB_OK); }