如何使用C++准确获取Windows操作系统版本
How to accurately get Windows OS version with C++?
我看到的每个链接总是提到GetVersionEx,但这似乎不是很有帮助。
我的方法看起来像这样,
static int windowsVersion() {
OSVERSIONINFO osvi;
ZeroMemory(&osvi, sizeof(OSVERSIONINFO));
osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
GetVersionEx(&osvi);
return osvi.dwMajorVersion;
}
我正在运行Windows 8,而是返回6。
如果我试图准确地获得他们的Windows版本,那不是很有帮助。
注意:我还检查了所有其他变量。 dwMinorVersion 返回 4,内部版本号返回类似 8400 的内容。
手动:对于 Windows 8,dwMajorVersion
为 6,dwMinorVersion
为 2
您需要同时使用主要版本号和次要版本号。
视窗 Vista 6.0.6000
视窗 7 6.1.7600
我的电脑上的 Windows 8 64 位版本返回 6.2.9200
dwMajorVersion
的6
可以表示Windows Vista及更高版本的任何内容。这就是Microsoft版本控制的工作方式。 dwMinorVersion
2
应该是Windows 8或Windows Server 2012。如果wProductType == VER_NT_WORKSTATION
,你得到了Windows 8。所有这些都在MSDN上进行了解释。
相关文章:
- 如何在 Windows 操作系统中在 geany 中安装插件
- 当PSO细粒度策略对使用AdsGetObject MSDN API的Windows操作系统生效时,如何获取用户密码到期日
- 在 Windows 操作系统上使用C++检查特定的开放 TCP 端口
- 通过代码在 Windows 操作系统上启用和禁用 DST
- 如何在Linux / Windows操作系统上使用文件*.cpp一步编译下面的代码
- 如何在 Windows 操作系统中创建制作文件并使用 cmd 运行它
- 如何使用C++准确获取Windows操作系统版本
- 执行基于 Windows 操作系统的条件函数
- Windows操作系统多久才能从唤醒计时器中唤醒
- 正在尝试解释Windows操作系统上的用户会话状态
- 用于windows操作系统的strerror_r的替代api
- 如何在Windows操作系统的情况下将数据从OpenCV或C++线程函数返回到主线程
- 代码在Linux上运行良好,但在Windows操作系统上给出不同的输出
- 枚举LAN中具有Windows操作系统的计算机
- 正在生成唯一的Windows操作系统ID
- 我可以在Windows操作系统上使用本地套接字吗?-C++/Boost
- iPad/iPhone应用程序在Windows操作系统上用C++开发
- JavaFX设置窗口总是在顶部与JNA库,windows操作系统
- 如何在windows操作系统下切换桌面
- Windows 7操作系统下创建/删除新用户