简体   繁体   中英

Reliable way to get Windows Version from registry

I'm checking the windows version in an installer (made with NSIS) by checking the following registry key:

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

According to this post and this page from MSDN, the currentVersion number for Windows 10 should be 10.0.

I just installed the Windows 10 Pro Insider Preview and the version number given in the registry is still 6.3, instead of 10.10 as it should.

Is there another reliable way in registry to detect Windows 10?

在Windows 10下,而不是读取值CurrentVersion ,而是读取新值CurrentMajorVersionNumber (它是10)和CurrentMinorVersionNumber (它是0)。这两个键是Windows 10中的新功能,可以从Registry中检测Windows版本

There's also a human-readable string in the registry called "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();
}

Try

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

Which gives me 10 and 1709.

See Peter Bright's article at https://arstechnica.com/information-technology/2014/11/why-windows-10-isnt-version-6-any-more-and-why-it-will-probably-work/ for more insight on why you see the answers you do. As you already saw from @magicandre1981, the CurrentMajorVersionNumber key will give you the "10" you want. You can get 10.0 from System.Environment.OSVersion if the application manifest explicitly designates your app for Windows 10, as stated in the referenced article. Without it, Environment.OSVersion will give you 6.2.9200, which is the same as Windows 8. So, your Windows 10 version is 10.0, 6.3, or 6.2, depending on how you ask the question.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM