2013-02-18 25 views
8

Câu hỏi này, How can I determine the Windows version from a VB 6 app, có câu trả lời rất hữu ích từ Cody Gray sử dụng GetVersionEx và câu lệnh Chọn trường hợp để trả về phiên bản Windows dưới dạng chuỗi thân thiện với người dùng. Tuy nhiên, mã được đưa ra bị giới hạn ở chỗ tất cả các giá trị trả về đều được mã hóa cứng, có nghĩa là nó không phải là bằng chứng trong tương lai và cần được viết lại mỗi khi phiên bản Windows mới xuất hiện, chẳng hạn như Windows 8 chẳng hạn.Làm cách nào để có được phiên bản hệ điều hành thân thiện với người dùng trong tương lai?

Có tùy chọn nào khác, ngoài việc sử dụng GetVersionEx và câu lệnh Chọn trường hợp, để truy xuất tên hệ điều hành thân thiện với người dùng cũng sẽ là bằng chứng tương đối trong tương lai không?

+0

gì trên trái đất làm cho bạn nghĩ rằng GetVersionEx sẽ không được hỗ trợ trong các phiên bản tương lai của Windows? –

+2

@HansPassant Nếu bạn nhìn vào câu trả lời và mã mẫu bạn sẽ thấy sau khi sử dụng GetVersionEx, bạn phải thực hiện một câu lệnh Select phức tạp với các giá trị được mã hóa cứng. Do đó, mỗi khi phiên bản Windows mới xuất hiện, bạn phải sửa mã. –

+5

Vì vậy, đây là về hiển thị tên tiếp thị của hệ điều hành ("Windows UltraModern Spiffy Penultimate Lunar Edition")? Thay vì phát hiện nền tảng cho một số lý do chức năng? – Bob77

Trả lời

7

Các WMI classes thể được sử dụng để trích xuất các dữ liệu cần thiết như sau:

Public Function GetFriendlyOSVersion() As String 
    Dim query As String 
    query = "SELECT Caption FROM Win32_OperatingSystem" 
    Dim results As Object 
    Set results = GetObject("Winmgmts:").ExecQuery(query) 
    Dim info As Object 
    For Each info In results 
     GetFriendlyOSVersion = info.Caption 
    Next info 
End Function 
+0

Cùng một câu hỏi làm phiền tôi quá, và thử nghiệm các chú thích là lựa chọn duy nhất tôi nhận thức được, nhưng nó có an toàn không? –

+0

Vâng, bây giờ tôi đã thử nó và triển khai nó trong mã sản xuất mà không có vấn đề gì. –

+0

Ah, tôi biết nó hoạt động, tôi không chắc chắn Caption là một tài sản chỉ đọc? –

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