VC++ 獲取windows系統的版本類型


vc中獲取windows版本信息,一般是調用GetVersionEx 這個API函數來獲取的,這個API需要OSVERSIONINFOEX 這個結構體作為參數,OSVERSIONINFOEX 的對應的具體的OS版本類型詳細如下:

Operating system Version number dwMajorVersion dwMinorVersion Other
Windows 8.1 6.3* 6 3 OSVERSIONINFOEX.wProductType == VER_NT_WORKSTATION
Windows Server 2012 R2 6.3* 6 3 OSVERSIONINFOEX.wProductType != VER_NT_WORKSTATION
Windows 8 6.2 6 2 OSVERSIONINFOEX.wProductType == VER_NT_WORKSTATION
Windows Server 2012 6.2 6 2 OSVERSIONINFOEX.wProductType != VER_NT_WORKSTATION
Windows 7 6.1 6 1 OSVERSIONINFOEX.wProductType == VER_NT_WORKSTATION
Windows Server 2008 R2 6.1 6 1 OSVERSIONINFOEX.wProductType != VER_NT_WORKSTATION
Windows Server 2008 6.0 6 0 OSVERSIONINFOEX.wProductType != VER_NT_WORKSTATION
Windows Vista 6.0 6 0 OSVERSIONINFOEX.wProductType == VER_NT_WORKSTATION
Windows Server 2003 R2 5.2 5 2 GetSystemMetrics(SM_SERVERR2) != 0
Windows Home Server 5.2 5 2 OSVERSIONINFOEX.wSuiteMask & VER_SUITE_WH_SERVER
Windows Server 2003 5.2 5 2 GetSystemMetrics(SM_SERVERR2) == 0
Windows XP Professional x64 Edition 5.2 5 2 (OSVERSIONINFOEX.wProductType == VER_NT_WORKSTATION) && (SYSTEM_INFO.wProcessorArchitecture==PROCESSOR_ARCHITECTURE_AMD64)
Windows XP 5.1 5 1 Not applicable
Windows 2000 5.0 5 0 Not 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";
	}
}

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM