VC++ 獲取windows系統的版本型別
阿新 • • 發佈:2019-01-10
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 等系統版本資訊 寫了個函式,實現如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
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" ;
}
}
|