2013-08-16 117 views
4

我有一個問題, 如何從c#註冊表中檢查Windows版本?檢查Windows註冊表版本c#

(的Windows XP升級到Windows 8.1)

+5

*要求代碼必須表現出對問題的認識極少被問題解決。包括嘗試的解決方案,爲什麼他們沒有工作,並預期的結果* –

+0

可能重複的[如何獲得'友好的'操作系統版本名稱?](http://stackoverflow.com/questions/577634/how-to-得到友好的操作系統版本名稱) –

+1

我的問題,爲什麼你檢查註冊表的版本?你不能從'Environment'類中獲得它嗎? –

回答

5

Environment.OSVersion正如其他人所說的是正確的路要走。

然而,如果有人想通過註冊表來得到它,這可以用來 -

using (Microsoft.Win32.RegistryKey key = 
     Microsoft.Win32.Registry.LocalMachine 
       .OpenSubKey(@"SOFTWARE\Microsoft\WindowsNT\CurrentVersion")) 
{ 
    var osVersion = key.GetValue("CurrentVersion"); 
} 

註冊表中的版本是HKLM "SOFTWARE\Microsoft\Windows NT\CurrentVersion"

此外,從here對應的實際OS映射 -

Operating system  Version number 
-----------------  -------------- 
Windows 8     6.2 
Windows Server 2012   6.2 
Windows 7     6.1 
Windows Server 2008 R2  6.1 
Windows Server 2008   6.0 
Windows Vista    6.0 
Windows Server 2003 R2  5.2 
Windows Server 2003   5.2 
Windows XP 64-Bit Edition 5.2 
Windows XP     5.1 
Windows 2000    5.0 
+0

請注意,我已經看到這個...... WindowsNT實際上可能有一個空間......所以關鍵可能是「Windows NT」。 – Alexandru

+0

如何將osVersion輸出到MessageBox? – Black

+0

我使用Windows 10並獲得'6.2' – Black

7

Environment.OSVersion可以給你的!

閱讀有關Environment class的MSDN文檔,以查看您可以從此課程獲得的所有其他信息。