VS2010中GetVersionEx函数实测最高版本Windows 8(NT6.2 Build 9200),不再支持新系统。
以下代码来自广大网友,侵权请联系删除
inline void GetRealVersionOfWindows(DWORD & dwMajor, DWORD & dwMinor)
{
DWORD Minor = 0;
DWORD Major = 0;
_asm
{
pushad
mov ebx, fs:[0x18];// get self pointer from TEB
mov eax, fs:[0x30];// get pointer to PEB / database
mov ebx, [eax + 0A8h];// get OSMinorVersion
mov eax, [eax + 0A4h];// get OSMajorVersion
mov Minor, ebx
mov Major, eax
popad
}
dwMajor = Major;
dwMinor = Minor;
}
使用此函数即可获取Windows真实版本,此函数的参数返回Windows版本。如Windows 8.1,则Major==6,Minor==3;如Windows 10,则Major==10,Minor==0。