2015-06-26 18 views
9

Sto controllando la versione di Windows in un programma di installazione (fatta con NSIS) controllando la seguente chiave di registro:modo affidabile per ottenere la versione di Windows dal registro

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

Secondo this post e this page da MSDN, il currentVersion il numero per Windows 10 dovrebbe essere 10.0.

Ho appena installato Windows 10 Pro Insider Preview e il numero di versione indicato nel registro è ancora 6.3, anziché 10.10 come dovrebbe.

Esiste un altro modo affidabile nel Registro di sistema per rilevare Windows 10?

+1

c'è un nuovo valore CurrentMajorVersionNumber che è 10 e CurrentMinorVersionNumber che è 0 nella mia macchina virtuale di Win10. – magicandre1981

+0

Perché la lettura dal registro è un requisito? – Anders

+0

Grazie a @ magicandre1981. Questo è quello di cui avevo bisogno. Ho controllato se queste chiavi esistono e il valore di queste chiavi. – skuallpa

risposta

1

C'è anche una stringa leggibile nel Registro di sistema denominata "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(); 
} 
1

Prova

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

che mi dà il 10 e il 1709.

0
articolo di

vedere Peter luminose https://arstechnica.com/information-technology/2014/11/why-windows-10-isnt-version-6-any-more-and-why-it-will-probably-work/ per ulteriori informazioni sul motivo per cui vedi le risposte che fai. Come hai già visto da @ magicandre1981, la chiave CurrentMajorVersionNumber ti darà il "10" che desideri. Puoi ottenere 10.0 da System.Environment.OSVersionse il manifest di applicazione esplicitamente indica la tua app per Windows 10, come indicato nell'articolo di riferimento. Senza di esso, Environment.OSVersion ti darà 6.2.9200, che è lo stesso di Windows 8. Quindi, la tua versione di Windows 10 è 10.0, 6.3 o 6.2, a seconda di come fai la domanda.

Problemi correlati