VBA获取操作系统的版本号(支持windows xp,windows 2003 ,win7 ,win10)

2017-09-17 09:06:00
zstmtony
原创
305

VBA获取操作系统的版本号(支持windows xp,windows 2003 ,win7 ,win10)


Public GetOsVersion() As String
    Dim objWMIService, colItems, objItem, strOSversion As String
    Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")
    Set colItems = objWMIService.ExecQuery("Select * from Win32_OperatingSystem")
    For Each objItem In colItems
        strOSversion = objItem.Version
    Next
    Select Case Left(strOSversion, 3)
        Case "5.2": strOSversion = "Windows Server 2003"
        Case "5.0": strOSversion = "Windows 2000"
        Case "5.1": strOSversion = "Windows XP"
        Case "6.0": strOSversion = "windows vista"
        Case "6.1": strOSversion = "Win7"
        Case "6.2": strOSversion = "Win8"
        Case "6.3": strOSversion = "Win8.1"
        Case "10.": strOSversion = "Win10"
        Case Else: strOSversion = "i don't know"
    End Select
     GetOsVersion=strOSversion
End Sub
'其它获取系统版本的相关VB 代码 Private Declare Function GetVersionEx Lib "kernel32" Alias "GetVersionExA" (lpVersionInformation As OSVERSIONONFO) As Long
Private Type OSVERSIONONFO
dwOSVersioninfoSize As Long
dwMajorVersion As Long
dwMinorVersion As Long
dwBuildNumber As Long
dwPlatformld As Long
dwCSDVersion As String * 128
End Type
Public Function SystemVer() As Variant
Dim Osinfor As OSVERSIONONFO, StrOsName As String
Osinfor.dwOSVersioninfoSize = Len(Osinfor)
GetVersionEx Osinfor
Select Case Osinfor.dwPlatformld
       Case 0
            StrOsName = "Windows 32s"
       Case 1
          Select Case Osinfor.dwMinorVersion
                 Case 0
                      StrOsName = "Windows 95"
                 Case 10
                      StrOsName = "Windows 98"
                 Case 90
                      StrOsName = "Windows Mellinnium"
          End Select
       Case 2
          Select Case Osinfor.dwMajorVersion
                 Case 3
                      StrOsName = "WindowsNT 3.51"
                 Case 4
                      StrOsName = "WindowsNT 4.0"
                 Case 5
                      Select Case Osinfor.dwMinorVersion
                             Case 0
                                  StrOsName = "Windows 2000"
                             Case 1
                                  StrOsName = "Windows XP"
                             Case 2
                                  StrOsName = "Windows 2003"
                      End Select
                 Case 6
                      Select Case Osinfor.dwMinorVersion
                             Case 0
                                  StrOsName = "Windows Vista"
                             Case 1
                                  StrOsName = "Windows 7"
                      End Select
         End Select
       Case Else
            StrOsName = "未知系统版本"
       End Select
       SystemVer = StrOsName
End Function
Private Sub Command1_Click()
  MsgBox SystemVer
End Sub 
分享