如何判断用户的系统是XP还是2000或者98等??

解决方案 »

  1.   


    Private Declare Function GetVersionEx Lib "kernel32" Alias "GetVersionExA" (lpVersionInformation As OSVERSIONINFO) As Long
    Private Type OSVERSIONINFO
           dwOSVersionInfoSize  As Long
           dwMajorVersion  As Long
           dwMinorVersion  As Long
           dwBuildNumber  As Long
           dwPlatformId  As Long
           szCSDVersion  As String * 128
           osName  As String
    End Type
     
    Private Sub Command1_Click()
    Dim v As OSVERSIONINFO
    v = GetWindowsVersion()
    MsgBox v.osName
    End Sub
     Private Function GetWindowsVersion() As OSVERSIONINFO
    Dim ver As OSVERSIONINFO
    ver.dwOSVersionInfoSize = 148
    GetVersionEx verSelect Case ver.dwPlatformId
        Case 1
            Select Case ver.dwMinorVersion
                Case 0
                    ver.osName = "Windows  95"
                Case 10
                    ver.osName = "Windows  98"
                Case 90
                    ver.osName = "Windows  Mellinnium"
            End Select
        Case 2
            Select Case ver.dwMajorVersion
                Case 3
                    ver.osName = "Windows  NT  3.51"
                Case 4
                    ver.osName = "Windows  NT  4.0"
                Case 5
                    If ver.dwMinorVersion = 0 Then
                        ver.osName = "Windows  2000"
                    Else
                        ver.osName = "Windows  XP"
                    End If
            End Select
        Case Else
            ver.osName = "未知系统系统版本"
    End SelectGetWindowsVersion = ver
    End Function
      

  2.   

    用API函数,好像是GetSystemVersion什么来着的,可以很容易判断系统是NT还是98,但是在判断2000和xp的时候好像行不通:)
      

  3.   

    Type OSVERSIONINFO
        dwOSVersionInfoSize As Long
        dwMajorVersion As Long
        dwMinorVersion As Long
        dwBuildNumber As Long
        dwPlatformId As Long
        szCSDVersion As String * 128
    End TypePrivate Declare Function GetVersionEx Lib "kernel32" Alias "GetVersionExA" (ByRef lpVersionInformation As OSVERSIONINFO) As Long
    Public Function Get_OS() As String
      Dim OSString$, OSVersion As OSVERSIONINFO, BuildNr&
        
        OSVersion.dwOSVersionInfoSize = Len(OSVersion)
        Call GetVersionEx(OSVersion)
        
        OSString = "Unbekanntes Betriebssystem"    With OSVersion
          If (.dwBuildNumber And &HFFFF&) > &H7FFF Then
            BuildNr = (.dwBuildNumber And &HFFFF&) - &H10000
          Else
            BuildNr = .dwBuildNumber And &HFFFF&
          End If
        
          If .dwPlatformId = VER_PLATFORM_WIN32_NT Then
            If .dwMajorVersion = 4 Then
              OSString = "Windows NT"
            ElseIf .dwMajorVersion = 5 Then
              If .dwMinorVersion = 0 Then
                  OSString = "Windows 2000"
              ElseIf .dwMinorVersion = 1 Then
                  OSString = "Windows XP"
              End If
            End If
          ElseIf .dwPlatformId = VER_PLATFORM_WIN32_WINDOWS Then
            If (.dwMajorVersion > 4) Or (.dwMajorVersion = 4 And _
            .dwMinorVersion = 10) Then
              If BuildNr = 1998 Then
                OSString = "Windows 98"
              Else
                OSString = "Windows 98 SE"
              End If
            ElseIf (.dwMajorVersion = 4 And .dwMinorVersion = 0) Then
              OSString = "Windows 95"
            ElseIf (.dwMajorVersion = 4 And .dwMinorVersion = 90) Then
              OSString = "Windows ME"
            End If
          ElseIf .dwPlatformId = VER_PLATFORM_WIN32s Then
            OSString = "Windows 32s"
          End If
        End With
          
        Get_OS = OSString
    End Function
      

  4.   

    以下在模块Option ExplicitPublic Declare Function GetVersionEx Lib "kernel32" Alias "GetVersionExA" (lpVersionInformation As OSVERSIONINFO) As LongPublic Type OSVERSIONINFO
        dwOSVersionInfoSize As Long
        dwMajorVersion As Long
        dwMinorVersion As Long
        dwBuildNumber As Long
        dwPlatformId As Long
        szCSDVersion As String * 128
        osName As String
    End TypePublic Function GetWindowsVersion() As OSVERSIONINFO
        Dim ver As OSVERSIONINFO
        ver.dwOSVersionInfoSize = 148
        GetVersionEx ver
        With ver
            Select Case .dwPlatformId
                Case 1
                    Select Case .dwMinorVersion
                        Case 0
                            .osName = "Windows 95"
                        Case 10
                            .osName = "Windows 98"
                        Case 90
                            .osName = "Windows Mellinnium"
                    End Select
                Case 2
                    Select Case .dwMajorVersion
                        Case 3
                            .osName = "Windows NT 3.51"
                        Case 4
                            .osName = "Windows NT 4.0"
                        Case 5
                            Select Case .dwMinorVersion
                                Case 0
                                    .osName = "Windows 2000"
                                Case 1
                                    .osName = "Windows XP"
                                Case 2
                                    .osName = "Windows Server 2003"
                            End Select
                    End Select
                 Case Else
                    .osName = "Failed"
            End Select
        End With
        GetWindowsVersion = ver
    End Function
      

  5.   

    以下在窗体Private Sub Form_Load()
        Dim ver As OSVERSIONINFO
        ver = GetWindowsVersion()
        With ver
            Label1.Caption = .osName
        End With
    End Sub
      

  6.   

    用sysinfo控件,语法:
    Private Sub Command1_Click()
    Dim i As Integer
    i = Me.SysInfo1.OSPlatform
    If i = 0 Then
    MsgBox "操作系统为WIN95。"
    End If
     If i = 1 Then
     MsgBox "操作系统为WIN98。"
     End If
     If i = 2 Then
     MsgBox "操作系统为WIN2000或WINXP。"
     End If
    End Sub