我需要獲取操作系統的簡單說明,例如「Windows XP(SP2)」或「Windows 2000 Professional」以包含在某些調試代碼中。理想情況下,我想簡單地通過調用「GetOSDisplayName」函數來檢索它。如何在Windows中獲得當前操作系統版本的描述?
C++ win32編程有沒有這樣的函數?
我需要獲取操作系統的簡單說明,例如「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