谢谢,但我试过了,返回是long型。怎么判断是2000?
我想我解决了:用SysInfo控件,通过判断OSPlatform和OSVersion 就可确定是什么版本了。
谢谢大家。

解决方案 »

  1.   

    getversion 好像不行,只能判断95和nt
      

  2.   

    用GetVersionExPrivate Declare Function GetVersionEx Lib "kernel32" Alias "GetVersionExA" (lpVersionInformation As OSVERSIONINFO) As LongPrivate Type OSVERSIONINFO
            dwOSVersionInfoSize As Long
            dwMajorVersion As Long
            dwMinorVersion As Long
            dwBuildNumber As Long
            dwPlatformId As Long
            szCSDVersion As String * 128      '  Maintenance string for PSS usage
    End TypePrivate Const VER_PLATFORM_WIN32_NT = 2
    Public Const VER_PLATFORM_WIN32_WINDOWS = 1
    Public Const VER_PLATFORM_WIN32s = 0Private Sub CheckSys()
        Dim OSVER           As OSVERSIONINFO
        OSVER.dwOSVersionInfoSize = Len(OSVER)
        
        '检查操作系统
        Call GetVersionEx(OSVER)
        If OSVER.dwPlatformId = VER_PLATFORM_WIN32_NT Then
           If OSVER.dwMajorVersion < 4 Then
                msgbox"WINNT4.0以下版本"
           ElseIf OSVER.dwMajorVersion=4 Then
                msgbox"WINNT4.0"
           ElseIf OSVER.dwMajorVersion=5 Then
                msgbox"Win2000"
            End If
        ElseIF OSVER.dwPlatformId = VER_PLATFORM_WIN32_WINDOWS Then
           If dwMinorVersion=0 then
                msgbox"WIn95"
           ElseIF dwMinorVersion>0 Then
                msgbox"Win98"
           End If
        ElseIF OSVER.dwPlatformId =VER_PLATFORM_WIN32s Then
           msgbox "WIn3.1 or 中文Win3.2"
        End If
    End Sub
      

  3.   

    晕,在这里写的代码,排得真难看,呵呵。
    Public Const VER_PLATFORM_WIN32_WINDOWS = 1
    Public Const VER_PLATFORM_WIN32s = 0
    这两句应该是Private,笔误  :(