日期:2014-05-17  浏览次数:21252 次

如何用vb6获取操作系统的版本号(需要补充)
下面有一段网友给的获取操作系统的版本(区别windows系统版本):

VB code
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





该代码有点缺陷:就是不能区别win2003、vista和win7

有哪位大侠有上述系统,帮俺给补充完整了,谢谢。。。。。。。


------解决方案--------------------
最重要不就一句了,retvalue = GetVersionExA(osinfo)

这个与GetVersionExA()函数有关了,查ms的帮助

反正ver命令就可以查版本了,找下对应api了

BatchFile code
ver | find "5.0" >nul && (echo win2000)
ver | find "5.1" >nul && (echo winxp)
ver | find "5.2" >nul && (echo win2003)
ver | find "6.0" >nul && (echo vista)
ver | find "6.1" >nul && (echo win7)