获得Windows版本及SP信息
2010-12-16 14:55
344 查看
Operating system | Version number | dwMajorVersion | dwMinorVersion | Other |
---|---|---|---|---|
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 |
enum E_WinVersion { WINUNKNOWN = 0, WIN32S, WIN95, WIN98, WINME, WINNT, WIN2K, WINXP, WIN2003, WINVISTA, WIN7, WIN2005, WIN2008, WIN2008R2, };
BOOL GetWinVerSpInfo(int &nWindowsVersion, int &nSP) { OSVERSIONINFOEX osvi; ZeroMemory(&osvi, sizeof(OSVERSIONINFOEX)); osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEX); if( !( GetVersionEx ((OSVERSIONINFO *) &osvi)) ) return FALSE; int wVersion = WINUNKNOWN; switch (osvi.dwPlatformId) { case VER_PLATFORM_WIN32s: wVersion = WIN32S; break; case VER_PLATFORM_WIN32_WINDOWS: if ( osvi.dwMinorVersion == 0 ) wVersion = WIN95; else if ( osvi.dwMinorVersion == 10) wVersion = WIN98; else if ( osvi.dwMinorVersion == 90) wVersion = WINME; break; case VER_PLATFORM_WIN32_NT: if ( osvi.dwMajorVersion <= 4 ) wVersion = WINNT; else if ( osvi.dwMajorVersion == 5 && osvi.dwMinorVersion == 0 ) wVersion = WIN2K; else if ( osvi.dwMajorVersion == 5 && osvi.dwMinorVersion == 1 ) wVersion = WINXP; else if ( osvi.dwMajorVersion == 5 && osvi.dwMinorVersion == 2 ) wVersion = WIN2003; else if ( osvi.dwMajorVersion == 6 ) { if(osvi.dwMinorVersion==0) { wVersion = osvi.wProductType == VER_NT_WORKSTATION ? WINVISTA : WIN2008; } else if(osvi.dwMinorVersion==1) { wVersion = osvi.wProductType == VER_NT_WORKSTATION ? WIN7 : WIN2008R2; } } break; default: break; } nWindowsVersion = wVersion; nSP = osvi.wServicePackMajor; return TRUE; }
相关文章推荐
- .Net Framework中获得Windows目录、机器名、操作系统版本信息等系统环境信息
- 获得当前Windows操作系统版本的详细描述信息
- 在.Net Framework中获得Windows目录、机器名、操作系统版本信息等系统环境信息
- 在.Net Framework中获得Windows目录、机器名、操作系统版本信息等系统环境信息
- 在.Net Framework中获得Windows目录、机器名、操作系统版本信息等系统环境信息
- 如何获得Windows 8 应用的版本信息
- 获得Windows的版本信息。
- 获取windows版本信息
- 在C#里怎样获得当前Windows操作系统的语言种类?以及如何知道当前Windows版本?
- [置顶] 【PE】Windows平台下为可执行文件或动态库dll添加版本信息
- SP版本Windows Mobile Crossbow简短体验
- 怎样获得访客的IP,系统,IE版本等信息并显示在IE代码
- 获得Windows系统的IP网络信息的方法
- Windows资源(四)版本信息资源
- delphi获取windows系统版本信息,大全,准确
- windows驱动获取系统版本信息 PsGetVersion RtlGetVersion
- 如何使用API函数GetFileVersionInfo,获得版本信息
- 【我的Android进阶之旅】解决 Error:CreateProcess error=216, 该版本的 %1 与您运行的 Windows 版本不兼容。请查看计算机的系统信息,了解是否需要 x86
- Silverlight HtmlPage使用之二 获得浏览器版本和系统版本信息
- sql利用sp_columns_rowset 获得详细的表格信息