2011-02-25 82 views

回答

1

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion注册表项应该包含它。我不确定你是否可以在没有win32 API的情况下引用它,但你可能会...

0

您可以通过WMI得到它。 .Net 2.0

Imports System.Management 

Public Class Form1 

    Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load 
     Call GetOSVersion() 
    End Sub 

    Private Sub GetOSVersion() 
     Dim sCaption As String = String.Empty 
     Dim sVersion As String = String.Empty 
     Dim searcher As New ManagementObjectSearcher("root\CIMV2", _ 
       "SELECT * FROM Win32_OperatingSystem") 
     For Each queryObj As ManagementObject In searcher.Get() 
      sCaption = DirectCast(queryObj("Caption"), String) 
      sVersion = DirectCast(queryObj("Version"), String) 
     Next 
     Debug.WriteLine("OS: " & sCaption & " Ver " & sVersion) 
    End Sub 

End Class 
0

corsiKa让我走上了正轨,但它非常依赖于您的需求。我想要完整的内部版本号,随每个Windows 10累积更新而变化。 (例如16299.192)

WMI方法很好,但只能得到您10.0.16299,这是整个版本。我使用WMI Code Creator来查找WMI,但无法找到WMI中的“192”部分。

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\UBR 

有内部编号的192部分。

我看中了这个代码来获取10.0.16299.192:

Function GetOSVersion() As String 
    Dim strBuild1, strBuild2, strBuild3, strBuild4 As String 
    Dim regKey As Microsoft.Win32.RegistryKey 
    regKey = Microsoft.Win32.Registry.LocalMachine.OpenSubKey("SOFTWARE\Microsoft\Windows NT\CurrentVersion") 
    strBuild1 = regKey.GetValue("CurrentMajorVersionNumber") 
    strBuild2 = regKey.GetValue("CurrentMinorVersionNumber") 
    strBuild3 = regKey.GetValue("CurrentBuild") 
    strBuild4 = regKey.GetValue("UBR") 
    Return strBuild1 & "." & strBuild2 & "." & strBuild3 & "." & strBuild4 
End Function 
相关问题