Option ExplicitPrivate Declare Function GetVersionEx Lib "kernel32" Alias "GetVersionExA" _
                                                    (lpVersionInformation As OSVERSIONINFOEX) As LongPrivate Declare Function DllGetVersion Lib "Shlwapi.dll" (dwVersion As DllVersionInfo) As LongPrivate Type OSVERSIONINFOEX
    dwOSVersionInfoSize As Long
    dwMajorVersion As Long
    dwMinorVersion As Long
    dwBuildNumber As Long
    dwPlatformId As Long
    szCSDVersion As String * 128
    wServicePackMajor As Integer
    wServicePackMinor As Integer
    wSuiteMask As Integer
    wProductType As Byte
    wReserved As Byte
End TypePrivate Type DllVersionInfo
    cbSize As Long
    dwMajorVersion As Long
    dwMinorVersion As Long
    dwBuildNumber As Long
    dwPlatformId As Long
End Type'used for platform id
Const VER_PLATFORM_WIN32s = 0 'win 3.x
Const VER_PLATFORM_WIN32_WINDOWS = 1 'win 9.x
Const VER_PLATFORM_WIN32_NT = 2 'win nt,2000,XP
'used for product type
Const VER_NT_WORKSTATION = 1
Const VER_NT_SERVER = 3
'used for suite mask
Const VER_SUITE_DATACENTER = 128
Const VER_SUITE_ENTERPRISE = 2
Const VER_SUITE_PERSONAL = 512Private Const INFINITE = &HFFFFFFFF
Private Const NORMAL_PRIORITY_CLASS = &H20
Private Const WAIT_TIMEOUT = &H102&Public Function GetIeVer() As String
Dim VersionInfo As DllVersionInfo    VersionInfo.cbSize = Len(VersionInfo)
    Call DllGetVersion(VersionInfo)
    GetIeVer = VersionInfo.dwMajorVersion & "." & VersionInfo.dwMinorVersion
End FunctionPublic Function GetOSVer() As String
Dim osv As OSVERSIONINFOEX    osv.dwOSVersionInfoSize = Len(osv)
    If GetVersionEx(osv) = 1 Then
        Select Case osv.dwPlatformId
                    Case Is = VER_PLATFORM_WIN32s
                                GetOSVer = "Windows 3.x"
                    Case Is = VER_PLATFORM_WIN32_WINDOWS
                    
                                Select Case osv.dwMinorVersion
                                        Case Is = 0
                                            If InStr(UCase(osv.szCSDVersion), "C") Then
                                                GetOSVer = "Windows 95 OSR2"
                                            Else
                                                GetOSVer = "Windows 95"
                                            End If
                                        Case Is = 10
                                            If InStr(UCase(osv.szCSDVersion), "A") Then
                                                GetOSVer = "Windows 98 SE"
                                            Else
                                                GetOSVer = "Windows 98"
                                            End If
                                        Case Is = 90
                                                GetOSVer = "Windows Me"
                            End Select
                            
                    Case Is = VER_PLATFORM_WIN32_NT
                        Select Case osv.dwMajorVersion
                                Case Is = 3
                                    Select Case osv.dwMinorVersion
                                            Case Is = 0: GetOSVer = "Windows NT 3"
                                                Case Is = 1: GetOSVer = "Windows NT 3.1"
                                                Case Is = 5: GetOSVer = "Windows NT 3.5"
                                                Case Is = 51: GetOSVer = "Windows NT 3.51"
                                        End Select
                                Case Is = 4: GetOSVer = "Windows NT 4"
                                Case Is = 5
                                    Select Case osv.dwMinorVersion
                                            Case Is = 0 'win 2000
                                                Select Case osv.wProductType
                                                        Case Is = VER_NT_WORKSTATION
                                                            GetOSVer = "Windows 2000 Professional"
                                                        Case Is = VER_NT_SERVER
                                                            Select Case osv.wSuiteMask
                                                                Case Is = VER_SUITE_DATACENTER
                                                                    GetOSVer = "Windows 2000 DataCenter Server"
                                                        Case Is = VER_SUITE_ENTERPRISE
                                                                GetOSVer = "Windows 2000 Advanced Server"
                                                        Case Else
                                                                GetOSVer = "Windows 2000 Server"
                                                End Select
                                    End Select
                Case Is = 1 'win XP or win .NET server                    Select Case osv.wProductType
                        Case Is = VER_NT_WORKSTATION 'win XP
                            If osv.wSuiteMask = VER_SUITE_PERSONAL Then
                                GetOSVer = "Windows XP Home Edition"
                            Else
                                GetOSVer = "Windows XP Professional"
                            End If
                        Case Else
                            If osv.wSuiteMask = VER_SUITE_ENTERPRISE Then
                                GetOSVer = "Windows .NET Enterprise Server"
                            Else
                                GetOSVer = "Windows .NET Server"
                            End If
                End Select
            End Select
        End Select
        End Select
    End If
End FunctionPrivate Sub Form_Load()
    lblOSVer.Caption = GetOSVer
    lblIEVer.Caption = GetIeVer
    Me.Show
End Sub    觉得好就给分吧!