我通过检查以下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。