请问VB的大虾们,在VB中如何识别当前的操作系统是Vista?

解决方案 »

  1.   

    Public Declare Function GetVersionExA Lib "kernel32" (LpVersionInformation As OSVERSIONINFO) As Integer
    Public Type OSVERSIONINFO
       dwOSVersionInfoSize As Long
       dwMajorVersion As Long
       dwMinorVersion As Long
       dwBuildNumber As Long
       dwPlatformId As Long
       szCSDVersion As String * 128
    End Type'*************************************************************************
    '**函 数 名:GetVersion
    '**输    入:无
    '**输    出:(String) - 系统版本
    '**功能描述:系统版本
    '**全局变量:
    '**调用模块:
    '**作    者:叶帆
    '**日    期:2003年05月12日
    '**修 改 人:
    '**日    期:
    '**版    本:V1.0
    '*************************************************************************
    Public Function GetVersion() As String
       Dim osinfo As OSVERSIONINFO
       Dim retvalue As Integer   osinfo.dwOSVersionInfoSize = 148
       osinfo.szCSDVersion = Space$(128)
       retvalue = GetVersionExA(osinfo)   With osinfo
        Select Case .dwPlatformId
            Case 1
                    Select Case .dwMinorVersion
                        Case 0
                            GetVersion = "Windows 95"
                        Case 10
                            GetVersion = "Windows 98"
                        Case 90
                            GetVersion = "Windows Mellinnium"
                    End Select
                    sysFlag = False
            Case 2
                    Select Case .dwMajorVersion
                        Case 3
                            GetVersion = "Windows NT 3.51"
                        Case 4
                            GetVersion = "Windows NT 4.0"
                        Case 5
                            If .dwMinorVersion = 0 Then
                                GetVersion = "Windows 2000"
                            Else
                                GetVersion = "Windows XP"
                            End If
                    End Select
                    sysFlag = True
             Case Else
                   GetVersion = "未知"
                   sysFlag = True
        End Select
       End With
    End Function
      

  2.   

    在Vista中打断点测试下 稍微改下就行
    我没有环境
      

  3.   

    用楼上的方法,如果dwMajorVersion >6即为Vista
      

  4.   

    还是断点看看到底是几,这样以后出新系统了就不会总人为是Vista了