Cpp获取Windows系统版本
来源:互联网 发布:尼康优化校准设置技巧 编辑:程序博客网 时间:2024/06/07 03:48
参考 windows 下c++获取操作系统版本名称笔记
感谢原博主的分享
windows通过c++获取操作系统主要分两种:
1、windows是8.1版本以下版本:获取操作系统可以通过windows提供的api中GetVersionEx函数来获取
2、windows是8.1版本及以上:获取操作系统主要通过RtlGetNtVersionNumbers法来获取
//获取8.1以下版本操作系统名称string GetSystemVersion(){ string strOSVersion = ("Unknown Microsoft Windows Version"); OSVERSIONINFOEX os; os.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEX); if (!GetVersionEx((OSVERSIONINFO *)&os)) return(strOSVersion); switch (os.dwMajorVersion) { case 4: switch (os.dwMinorVersion) { case 0: if (os.dwPlatformId == VER_PLATFORM_WIN32_NT) strOSVersion = ("Microsoft Windows NT 4.0"); else if (os.dwPlatformId == VER_PLATFORM_WIN32_WINDOWS) strOSVersion = ("Microsoft Windows 95"); break; case 10: strOSVersion = ("Microsoft Windows 98"); break; case 90: strOSVersion = ("Microsoft Windows Me"); break; } break; case 5: switch (os.dwMinorVersion) { case 0: strOSVersion = ("Microsoft Windows 2000"); break; case 1: strOSVersion = ("Microsoft Windows XP"); break; case 2: { SYSTEM_INFO info; GetSystemInfo(&info); if (os.wProductType == VER_NT_WORKSTATION && info.wProcessorArchitecture == PROCESSOR_ARCHITECTURE_AMD64) { strOSVersion = ("Microsoft Windows XP Professional x64 Edition"); } else if (GetSystemMetrics(SM_SERVERR2) == 0) strOSVersion = ("Microsoft Windows Server 2003"); else if (GetSystemMetrics(SM_SERVERR2) != 0) strOSVersion = ("Microsoft Windows Server 2003 R2"); } break; } break; case 6: switch (os.dwMinorVersion) { case 0: if (os.wProductType == VER_NT_WORKSTATION) strOSVersion = ("Microsoft Windows Vista"); else strOSVersion = ("Microsoft Windows Server 2008"); break; case 1: if (os.wProductType == VER_NT_WORKSTATION) strOSVersion = ("Microsoft Windows 7"); else strOSVersion = ("Microsoft Windows Server 2008 R2"); break; case 2: if (os.wProductType == VER_NT_WORKSTATION) strOSVersion = ("Microsoft Windows 8"); else strOSVersion = ("Microsoft Windows Server 2012"); break; } break; } return(strOSVersion);}//获取8.1以上版本操作系统名称string GetSystemVersionNew(){ string strOSVersion = ""; typedef void(__stdcall*NTPROC)(DWORD*, DWORD*, DWORD*); HINSTANCE hinst = LoadLibraryA("ntdll.dll"); DWORD dwMajor, dwMinor, dwBuildNumber; NTPROC proc = (NTPROC)GetProcAddress(hinst, "RtlGetNtVersionNumbers"); proc(&dwMajor, &dwMinor, &dwBuildNumber); if (dwMajor == 6 && dwMinor == 3)//win 8.1 { if (dwBuildNumber == 4026541440)//WinServer2012R2的BuildNumber号 { strOSVersion = "Microsoft Windows Server 2012 R2"; } else { strOSVersion = "Microsoft Windows 8.1"; } } else if (dwMajor == 10 && dwMinor == 0)//win 10 { if (dwBuildNumber == 4026546233)//Win10的BuildNumber号 { strOSVersion = "Microsoft Windows 10"; } else { strOSVersion = "Microsoft Windows Server 2016"; } } return(strOSVersion);}
需要完整代码请访问CPlusPlusExamples
阅读全文
0 0
- Cpp获取Windows系统版本
- 获取windows系统版本
- 获取Windows系统版本
- 获取windows系统版本信息
- 获取Windows系统版本信息
- CPP -- 获取系统时间
- GetVersionEx 获取较新Windows系统版本
- 完整获取各种Windows系统版本
- GetVersionEx 获取较新Windows系统版本
- windows API获取系统版本信息
- 获取windows系统的版本名称
- 获取当前windows系统 及 版本
- 获取WINDOWS系统版本的方法。。
- C/C++获取Windows系统版本
- Windows Phone开发之获取屏幕分辨率 和 系统版本
- delphi获取windows系统版本信息,大全,准确
- delphi获取windows系统版本信息,大全,准确
- Windows API 函数GetVersionEx 获取系统版本出错
- C#生成一个几乎不会重复的编号
- Python pandas 数据框的str列内置的方法详解
- Android Hook技术初探
- 二进制、八进制、十六进制的概念以及加减运算
- 主成分变换的实现
- Cpp获取Windows系统版本
- LintCode 第632题 二叉树的最大节点
- springboot入门之mybatis
- [JSOI2007]字符加密Cipher
- Lintcode166 Nth to Last Node in List solution 题解
- javascript和易语言取GetCrc32
- Android Studio, Element path must be declared for FileProvider
- 单链表逆序打印方法
- border-radius