如何在Windows中获得当前操作系统版本的描述?
问题描述:
我需要获取操作系统的简单说明,例如“Windows XP(SP2)”或“Windows 2000 Professional”以包含在某些调试代码中。理想情况下,我想简单地通过调用“GetOSDisplayName”函数来检索它。如何在Windows中获得当前操作系统版本的描述?
C++ win32编程有没有这样的函数?
答
下面是从东西我近来看到的例子:
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”。
希望有一个内置函数,但我想这是最好的。 :(谢谢。 – Colen 2009-10-14 02:26:04
Win32不是使用最有趣的API :-P – 2009-10-14 02:42:33