2015-06-26 11 views
9

mir die Windows-Version in einem Installer (hergestellt mit NSIS) Überprüfung durch den folgenden Registrierungsschlüssel überprüft:Zuverlässige Weg von Windows-Version zu bekommen Registry

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

Nach this post und this page von MSDN, Current Die Nummer für Windows 10 sollte 10.0 sein.

Ich habe gerade die Windows 10 Pro Insider-Vorschau installiert und die Versionsnummer in der Registrierung angegeben ist immer noch 6.3, anstatt 10.10 wie es sollte.

Gibt es einen anderen zuverlässigen Weg in der Registrierung, um Windows 10 zu erkennen?

+1

gibt es einen neuen Wert CurrentMajorVersionNumber, der 10 und CurrentMinorVersionNumber ist, der 0 in meiner Win10 VM ist. – magicandre1981

+0

Warum ist das Lesen aus der Registrierung eine Voraussetzung? – Anders

+0

Danke @ magicandre1981. Das habe ich gebraucht. Ich habe überprüft, ob diese Schlüssel vorhanden sind und den Wert dieser Schlüssel. – skuallpa

Antwort

1

Es gibt auch eine menschenlesbare Zeichenfolge in der Registrierung als "Product"

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(); 
} 
1

Versuchen

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

Was mir 10 und 1709 gibt

0

See Peter Bright Artikel zu https://arstechnica.com/information-technology/2014/11/why-windows-10-isnt-version-6-any-more-and-why-it-will-probably-work/ für mehr Einblick, warum Sie die Antworten sehen, die Sie tun. Wie Sie bereits von @ magicandre1981 aus gesehen haben, gibt Ihnen der Schlüssel CurrentMajorVersionNumber die gewünschte "10". Sie können 10.0 von System.Environment.OSVersionerhalten, wenn das Anwendungsmanifest ausdrücklich bezeichnet Ihre App für Windows 10, wie in dem genannten Artikel angegeben. Ohne es gibt Environment.OSVersion Ihnen 6.2.9200, das ist das gleiche wie Windows 8. So ist Ihre Windows 10-Version 10.0, 6.3 oder 6.2, je nachdem, wie Sie die Frage stellen.