如何在Windows中获得当前操作系统版本的描述?

问题描述:

我需要获取操作系统的简单说明,例如“Windows XP(SP2)”或“Windows 2000 Professional”以包含在某些调试代码中。理想情况下,我想简单地通过调用“GetOSDisplayName”函数来检索它。如何在Windows中获得当前操作系统版本的描述?

C++ win32编程有没有这样的函数?

+0

希望有一个内置函数,但我想这是最好的。 :(谢谢。 – Colen 2009-10-14 02:26:04

+0

Win32不是使用最有趣的API :-P – 2009-10-14 02:42:33

下面是从东西我近来看到的例子:

OSVERSIONINFO osvi; 

ZeroMemory(&osvi, sizeof(OSVERSIONINFO)); 
osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFO); 

GetVersionEx(&osvi); 
// use osvi.dwMajorVersion and osvi.dwMinorVersion 

你需要运行一些测试来检查数字对应的窗口版本。这可能帮助:http://en.wikipedia.org/wiki/History_of_Microsoft_Windows#Windows_NT

// (bad) example to check if we're running Windows XP 
if (osvi.dwMajorVersion == 5 && osvi.dwMinorVersion == 1) 
{ 
    // Windows XP 
} 

请在下面找到一个链接到相关的.NET问题并设置答案。在.NET和C++/Win32之间进行一些简单的映射之后,C++/Win32的答案基本上是一样的。

How to translate MS Windows OS version numbers into product names in .NET?

如果你正在寻找的产品名称+是营销使用的版本,它在注册表中:

HKEY_LOCAL_MACHINE \ SOFTWARE \微软\的Windows NT \ CURRENTVERSION \产品名称

在展望我的电脑,它说“Windows 8.1 Pro”。