可靠的方式从registry中获取Windows版本

我通过检查以下registry项来检查安装程序(使用NSIS)中的Windows版本:

HKLM "SOFTWARE\Microsoft\Windows NT\CurrentVersion" "CurrentVersion" 

根据这个post和MSDN的这个页面 ,Windows 10的currentVersion编号应该是10.0。

我刚刚安装了Windows 10 Pro Insider Preview,registry中给出的版本号仍然是6.3,而不是10.10。

有没有另一种可靠的方式在registry中检测Windows 10?

而不是读取值CurrentVersion读取在Windows 10下的CurrentMajorVersionNumber (这是10)和CurrentMinorVersionNumber (这是0)的新值。这两个键是Windows 10中新的从检测到Windows版本的注册表 。

在注册表中还有一个名为“ProductName”的可读字符串

 using Microsoft.Win32; private string getOSInfo() { string registry_key = @"SOFTWARE\Microsoft\Windows NT\CurrentVersion"; var key = Registry.LocalMachine.OpenSubKey(registry_key); var value = key.GetValue("ProductName"); return value.ToString(); } 

尝试

 HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProductName HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ReleaseId 

这给了我10和1709。