C/C++(其实是汇编。。。)获取Windows真实版本

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。

 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值