VBA获取操作系统的版本号(支持windows xp,windows ,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 "
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 "
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