如何使用C ++准确获取Windows操作系统版本?

时间:2012-10-15 04:08:45

标签: c++ windows version

我看到的每个链接总是提到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的内容。

3 个答案:

答案 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上进行了解释。