2015-06-26 60 views
9

Tôi đang kiểm tra các phiên bản cửa sổ trong một trình cài đặt (được làm bằng NSIS) bằng cách kiểm tra các khóa registry sau đây:cách đáng tin cậy để có được Windows Version từ registry

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

Theo this postthis page từ MSDN, các CurrentVersion số cho Windows 10 phải là 10,0.

Tôi vừa cài đặt Windows 10 Pro Insider Preview và số phiên bản được cung cấp trong sổ đăng ký vẫn là 6,3, thay vì 10,10 như nó cần.

Có cách nào khác đáng tin cậy trong sổ đăng ký để phát hiện Windows 10 không?

+1

có một giá trị mới CurrentMajorVersionNumber là 10 và CurrentMinorVersionNumber là 0 trong máy ảo Win10 của tôi. – magicandre1981

+0

Tại sao đọc nó từ registry một yêu cầu? – Anders

+0

Xin cảm ơn @ magicandre1981. Đây là những gì tôi cần. Tôi đã kiểm tra xem các khóa này có tồn tại hay không và giá trị của các khóa này. – skuallpa

Trả lời

1

Ngoài ra còn có một chuỗi con người có thể đọc được trong registry gọi là "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

Hãy thử

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

nào mang lại cho tôi 10 và 1709.

0
bài viết

Xem Peter Bright tại https://arstechnica.com/information-technology/2014/11/why-windows-10-isnt-version-6-any-more-and-why-it-will-probably-work/ để có thêm thông tin chi tiết về lý do bạn thấy câu trả lời bạn làm. Như bạn đã thấy từ @ magicandre1981, khóa CurrentMajorVersionNumber sẽ cung cấp cho bạn "10" bạn muốn. Bạn có thể nhận được 10,0 từ System.Environment.OSVersionnếu tệp kê khai ứng dụng rõ ràng chỉ định ứng dụng của bạn cho Windows 10, như đã nêu trong bài viết được tham chiếu. Nếu không có nó, Environment.OSVersion sẽ cung cấp cho bạn 6.2.9200, tương tự như Windows 8. Vì vậy, phiên bản Windows 10 của bạn là 10.0, 6.3 hoặc 6.2, tùy thuộc vào cách bạn đặt câu hỏi.

Các vấn đề liên quan