[英]Reliable way to get Windows Version from registry
在Windows 10下,而不是读取值CurrentVersion
,而是读取新值CurrentMajorVersionNumber
(它是10)和CurrentMinorVersionNumber
(它是0)。这两个键是Windows 10中的新功能,可以从Registry中检测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。
请参阅位于https://arstechnica.com/information-technology/2014/11/why-windows-10-isnt-version-6-any-more-and-why-it-will-probably-work/的 Peter Bright的文章关于您为什么看到答案的更多见解。 正如您从@ magicandre1981中已经看到的那样, CurrentMajorVersionNumber
键将为您提供所需的“ 10”。 如果应用程序清单明确为Windows 10指定了应用程序, 则可以从System.Environment.OSVersion
获得10.0,如所引用的文章中所述。 没有它, Environment.OSVersion
将为您提供6.2.9200,与Windows 8相同。因此,Windows 10版本为10.0、6.3或6.2,具体取决于您提出问题的方式。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.