我看到的每个链接总是提到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的内容。
答案 0 :(得分:5)
Manual:对于Windows 8,dwMajorVersion
为6,dwMinorVersion
为2
答案 1 :(得分:3)
您需要同时使用主要版本号和次要版本号。
Windows Vista 6.0.6000
Windows 7 6.1.7600
我的PC上的Windows 8 64位版本返回6.2.9200
答案 2 :(得分:3)
6
的{{1}}可能意味着Windows Vista及更高版本。这就是微软版本的工作方式。 dwMajorVersion
的{{1}}应该是Windows 8或Windows Server 2012.如果是2
,则获得Windows 8.所有这些都在MSDN上进行了解释。