VC++ 获取windows系统的版本类型

vc中获取windows版本信息,一般是调用GetVersionEx 这个API函数来获取的,这个API需要OSVERSIONINFOEX 这个结构体作为参数,OSVERSIONINFOEX 的对应的具体的OS版本类型详细如下:

Operating systemVersion numberdwMajorVersiondwMinorVersionOther
Windows 8.16.3*63OSVERSIONINFOEX.wProductType == VER_NT_WORKSTATION
Windows Server 2012 R26.3*63OSVERSIONINFOEX.wProductType != VER_NT_WORKSTATION
Windows 86.262OSVERSIONINFOEX.wProductType == VER_NT_WORKSTATION
Windows Server 20126.262OSVERSIONINFOEX.wProductType != VER_NT_WORKSTATION
Windows 76.161OSVERSIONINFOEX.wProductType == VER_NT_WORKSTATION
Windows Server 2008 R26.161OSVERSIONINFOEX.wProductType != VER_NT_WORKSTATION
Windows Server 20086.060OSVERSIONINFOEX.wProductType != VER_NT_WORKSTATION
Windows Vista6.060OSVERSIONINFOEX.wProductType == VER_NT_WORKSTATION
Windows Server 2003 R25.252GetSystemMetrics(SM_SERVERR2) != 0
Windows Home Server5.252OSVERSIONINFOEX.wSuiteMask & VER_SUITE_WH_SERVER
Windows Server 20035.252GetSystemMetrics(SM_SERVERR2) == 0
Windows XP Professional x64 Edition5.252(OSVERSIONINFOEX.wProductType == VER_NT_WORKSTATION) && (SYSTEM_INFO.wProcessorArchitecture==PROCESSOR_ARCHITECTURE_AMD64)
Windows XP5.151Not applicable
Windows 20005.050Not applicable

* For applications that have been manifested for Windows 8.1. Applications not manifested for 8.1 will return the Windows 8 OS version value (6.2). To 

 本人就获取 windows xp,vista,win8 ,win8.1 等系统版本信息 写了个函数,实现如下:

VOID GetOSVersion(CString& strOSVersion)
{
	OSVERSIONINFOEX osver = {0};
	osver.dwOSVersionInfoSize = sizeof(osver);
	::GetVersionEx((OSVERSIONINFO*)&osver);
	if( osver.dwMajorVersion == 5 
		&& (osver.dwMinorVersion == 1 || osver.dwMinorVersion == 2) 
		)
	{
		strOSVersion = L"OS:Windows XP";
	}
	else if(osver.dwMajorVersion == 6 && osver.dwMinorVersion == 0)
	{
		strOSVersion = L"OS:Windows Vista";
	}
	else if(osver.dwMajorVersion == 6 && osver.dwMinorVersion == 1)
	{
		strOSVersion = L"OS:Windows 7";
	}
	else if(osver.dwMajorVersion == 6 && osver.dwMinorVersion == 2)
	{
		strOSVersion = L"OS:Windows 8";
	}
	else if(osver.dwMajorVersion == 6 && osver.dwMinorVersion == 3)
	{
		strOSVersion = L"OS:Windows 8.1";
	}
}

  

 

转载于:https://www.cnblogs.com/JczmDeveloper/p/3513849.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值