请给点代码提示?先谢谢了,

解决方案 »

  1.   

    WORD GetWindowType()
    {
    OSVERSIONINFOEX osInfo;
    WORD osVer = 0;
    ZeroMemory(&osInfo, sizeof(OSVERSIONINFOEX));
    osInfo.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEX);
    if(!GetVersionEx((LPOSVERSIONINFO)&osInfo))
    {
    osInfo.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
    if(!GetVersionEx((LPOSVERSIONINFO)&osInfo))
    return 0;
    }
    switch(osInfo.dwPlatformId)
    {
    case VER_PLATFORM_WIN32_NT:
    osVer = 1;
    break;
    case VER_PLATFORM_WIN32_WINDOWS:
    osVer = 0;
    break;
    case VER_PLATFORM_WIN32s:
    osVer = 0;
    break;
    }
    return osVer;
    }
      

  2.   

    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
    End TypePrivate Sub Form_Load()
        Dim OSInfo As OSVERSIONINFO, Pid As String
        Me.AutoRedraw = True
        'Set the structure size
        OSInfo.dwOSVersionInfoSize = Len(OSInfo)
        'Get the Windows version
        Ret& = GetVersionEx(OSInfo)
        'Chack for errors
        If Ret& = 0 Then MsgBox "Error Getting Version Information": Exit Sub
        'Print the information to the form
        Select Case OSInfo.dwPlatformId
            Case 0
                Pid = "Windows 32s "
            Case 1
                Pid = "Windows 95/98"
            Case 2
                Pid = "Windows NT "
        End Select
        Print "OS: " + Pid
        Print "Win version:" + Str$(OSInfo.dwMajorVersion) + "." + LTrim(Str(OSInfo.dwMinorVersion))
        Print "Build: " + Str(OSInfo.dwBuildNumber)
    End Sub
      

  3.   

    楼上的老大,能不能给点VB的呀??VC的不懂啊
      

  4.   

    二楼的是VB的啊,主要就是调用API函数GetVersionEx()
      

  5.   

    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
     
                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
        
                    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
        
                    Case Else
                       getVersion = "Failed"
                End Select
     
                   End With
                End Function                    
    Add the following line of code to the Load event of Form1:
    MsgBox GetVersion()
      

  6.   

    Public Function GetWindowsVer(strWindowsName As String, lgWVerMajor As Long, lgWVerMinor As Long, lgWVerBuild As Long, lgWPlat As Long, Optional strWSP As String = "") As Long
    On Error GoTo Error_GetWindowsVer
       Dim stuOS As OSVERSIONINFO
       Dim varF
       stuOS.dwOSVersionInfoSize = Len(stuOS)
       varF = GetVersionEx(stuOS)
       If varF = 0 Then
          GetWindowsVer = -1
          Exit Function
       End If
       Select Case stuOS.dwPlatformId
          Case VER_PLATFORM_WIN32_NT:
             lgWPlat = PLAT_WIN32NT
          Case VER_PLATFORM_WIN32_WINDOWS:
             lgWPlat = PLAT_WIN329X
          Case VER_PLATFORM_WIN32s:
             lgWPlat = PLAT_WIN3231
          Case Else:
             lgWPlat = PLAT_UNKNOWN
       End Select
       Select Case lgWPlat
          Case PLAT_WIN32NT:
             If stuOS.dwMajorVersion > 4 Then
                If stuOS.dwMinorVersion = 1 Then
                   strWindowsName = "Microsoft Windows XP"
                   lgWVerMajor = stuOS.dwMajorVersion
                   lgWVerMinor = stuOS.dwMinorVersion
                   lgWVerBuild = stuOS.dwBuildNumber
                   strWSP = stuOS.szCSDVersion
                Else
                   strWindowsName = "Microsoft Windows 2000"
                   lgWVerMajor = stuOS.dwMajorVersion
                   lgWVerMinor = stuOS.dwMinorVersion
                   lgWVerBuild = stuOS.dwBuildNumber
                   strWSP = stuOS.szCSDVersion
                End If
             End If
             If stuOS.dwMajorVersion = 4 Then
                strWindowsName = "Microsoft Windows NT 4.0"
                lgWVerMajor = stuOS.dwMajorVersion
                lgWVerMinor = stuOS.dwMinorVersion
                lgWVerBuild = stuOS.dwBuildNumber
                strWSP = stuOS.szCSDVersion
             End If
             If stuOS.dwMajorVersion < 4 Then
                strWindowsName = "Microsoft Windows NT 3." & stuOS.dwMinorVersion & stuOS.dwBuildNumber
                lgWVerMajor = stuOS.dwMajorVersion
                lgWVerMinor = stuOS.dwMinorVersion
                lgWVerBuild = stuOS.dwBuildNumber
             End If
          Case PLAT_WIN329X:
             If (stuOS.dwBuildNumber And 65535) = 1998 Then
                strWindowsName = "Microsoft Windows 98"
                lgWVerMajor = stuOS.dwMajorVersion
                lgWVerMinor = stuOS.dwMinorVersion
                lgWVerBuild = (stuOS.dwBuildNumber And 65535)
             End If
             If ((stuOS.dwBuildNumber And 65535) > 1998) And ((stuOS.dwBuildNumber And 65535) <= 2222) Then
                strWindowsName = "Microsoft Windows 98 Second Edtion"
                lgWVerMajor = stuOS.dwMajorVersion
                lgWVerMinor = stuOS.dwMinorVersion
                lgWVerBuild = (stuOS.dwBuildNumber And 65535)
             End If
             If (stuOS.dwBuildNumber And 65535) < 1998 Then
                strWindowsName = "Microsoft Windows 95"
                lgWVerMajor = stuOS.dwMajorVersion
                lgWVerMinor = stuOS.dwMinorVersion
                lgWVerBuild = (stuOS.dwBuildNumber And 65535)
             End If
             If (stuOS.dwBuildNumber And 65535) > 2222 Then
                strWindowsName = "Microsoft Windows ME"
                lgWVerMajor = stuOS.dwMajorVersion
                lgWVerMinor = stuOS.dwMinorVersion
                lgWVerBuild = (stuOS.dwBuildNumber And 65535)
             End If
          Case PLAT_WIN3231:
                strWindowsName = "Microsoft Windows 3." & stuOS.dwMinorVersion
                lgWVerMajor = stuOS.dwMajorVersion
                lgWVerMinor = stuOS.dwMinorVersion
                lgWVerBuild = stuOS.dwBuildNumber
          Case PLAT_UNKNOWN:
                strWindowsName = "Unknown OS"
                lgWVerMajor = 0
                lgWVerMinor = 0
                lgWVerBuild = 0
       End Select
       GetWindowsVer = 0
    Exit_GetWindowsVer:
       Exit Function
    Error_GetWindowsVer:
       GetWindowsVer = -1
       Resume Exit_GetWindowsVer
    End Function