VB获取Windows操作系统所有版本

'****************************************************************************'人人为我,我为人人'枕善居汉化收藏整理'发布日期:2007/08/20'描    述:完全获取Windows操作系统的版本'网    站:http://www.Mndsoft.com/  (VB6源码博客)'网    站:http:...
摘要由CSDN通过智能技术生成

'****************************************************************************
'人人为我,我为人人

'枕善居汉化收藏整理
'发布日期:2007/08/20
'描    述:完全获取Windows操作系统的版本
'网    站:http://www.Mndsoft.com/  (VB6源码博客)
'网    站:http://www.VbDnet.com/   (VB.NET源码博客,主要基于.NET2005)
'e-mail  :Mndsoft@163.com
'e-mail  :Mndsoft@126.com
'OICQ    :88382850
'          如果您有新的好的代码别忘记给枕善居哦!
'****************************************************************************
Option Explicit

Private Declare Function GetVersionEx Lib "kernel32" Alias "GetVersionExA" (lpVersionInformation As OSVERSIONINFOEX) As Long

Private Type OSVERSIONINFOEX
    dwOSVersionInfoSize As Long
    dwMajorVersion  As Long
    dwMinorVersion As Long
    dwBuildNumber As Long
    dwPlatformId As Long
    szCSDVersion As String * 128
    wServicePackMajor As Integer
    wServicePackMinor As Integer
    wSuiteMask As Integer
    wProductType As Byte
    wReserved As Byte
End Type

Private Const VER_PLATFORM_WIN32_NT As Long = 2
Private Const VER_PLATFORM_WIN32_WINDOWS As Long = 1
Private Const VER_PLATFORM_WIN32s As Long = 0

Private Const PRODUCT_UNLICENSED As Long = &HABCDABCD
Private Const PRODUCT_BUSINESS As Long = &H6
Private Const PRODUCT_BUSINESS_N As Long = &H10
Private Const PRODUCT_CLUSTER_SERVER As Long = &H12
Private Const PRODUCT_DATACENTER_SERVER As Long = &H8
Private Const PRODUCT_DATACENTER_SERVER_CORE As Long = &HC
Private Const PRODUCT_ENTERPRISE As Long = &H4
Private Const PRODUCT_ENTERPRISE_N As Long = &H1B
Private Const PRODUCT_ENTERPRISE_SERVER As Long = &HA
Private Const PRODUCT_ENTERPRISE_SERVER_CORE As Long = &HE
Private Const PRODUCT_ENTERPRISE_SERVER_IA64 As Long = &HF
Private Const PRODUCT_HOME_BASIC As Long = &H2
Private Const PRODUCT_HOME_BASIC_N As Long = &H5
Private Const PRODUCT_HOME_PREMIUM As Long = &H3
Private Const PRODUCT_HOME_PREMIUM_N As Long = &H1A
Private Const PRODUCT_HOME_SERVER As Long = &H13
Private Const PRODUCT_SERVER_FOR_SMALLBUSINESS As Long = &H18
Private Const PRODUCT_SMALLBUSINESS_SERVER As Long = &H9
Private Const PRODUCT_SMALLBUSINESS_SERVER_PREMIUM As Long = &H19
Private Const PRODUCT_STANDARD_SERVER As Long = &H7
Private Const PRODUCT_STANDARD_SERVER_CORE As Long = &HD
Private Const PRODUCT_STARTER As Long = &H8
Private Const PRODUCT_STORAGE_ENTERPRISE_SERVER As Long = &H17
Private Const PRODUCT_STORAGE_EXPRESS_SERVER As Long = &H14
Private Const PRODUCT_STORAGE_STANDARD_SERVER As Long = &H15
Private Const PRODUCT_STORAGE_WORKGROUP_SERVER As Long = &H16
Private Const PRODUCT_UNDEFINED As Long = &H0
Private Const PRODUCT_ULTIMATE As Long = &H1
Private Const PRODUCT_ULTIMATE_N As Long = &H1C
Private Const PRODUCT_WEB_SERVER As Long = &H11
Public Function GetWindowsVersion() As String

' 变量声明
Dim retOSVersionInf As OSVERSIONINFOEX
Dim retLng As Long

'结构尺寸
retOSVersionInf.dwOSVersionInfoSize = Len(retOSVersionInf)

'获取 Windows 版本
retLng = GetVersionEx(retOSVersionInf)

If retLng = 0 Then
    GetWindowsVersion = "未知"
    Exit Function
End If

With retOSVersionInf

If .dwPlatformId = VER_PLATFORM_WIN32_WINDOWS Then
        
        Select Case .dwMajorVersion
            Case 4
                Select Case .dwMinorVersion
                    Case 0 ' Win 95
                        Select Case .szCSDVersion
                            Case "C" ' OSR2
                                GetWindowsVersion = "Windows 95 OSR2"
                            Case "B" ' OSR2
                                GetWindowsVersion = "Windows 95 OSR2"
                            Case Else
                                GetWindowsVersion = "Windows 95"
                        End Select
                    Case 10 ' Win 98
                        Select Case .szCSDVersion
                            Case "A" ' SE
                                GetWindowsVersion = "Windows 98 SE"
                            Case Else
                                GetWindowsVersion = "Windows 98"
                        End Select
                    Case 90 ' Win ME
                        GetWindowsVersion = "Windows ME"
                End Select
        End Select

ElseIf .dwPlatformId = VER_PLATFORM_WIN32_NT And .dwMajorVersion = 5 Then

    Select Case .dwMinorVersion
        Case 0 ' Win 2000
            Select Case .wProductType
                Case 1
                    Select Case .wSuiteMask
                        Case &H80 ' 数据中心
                            GetWindowsVersion = "Windows 2000 Data center"
                        Case &H2 ' 高级版本
                            GetWindowsVersion = "Windows 2000 Advanced"
                        Case Else
                            GetWindowsVersion = "Windows 2000"
                    End Select
            End Select
        Case 1 ' Win XP
            Select Case .wProductType
                Case 1
                    Select Case .wSuiteMask
                        Case &H0 ' Pro
                            GetWindowsVersion = "Windows XP Professional"
                        Case &H200 ' Home
                            GetWindowsVersion = "Windows XP Home"
                        Case Else ' XP
                            GetWindowsVersion = "Windows XP"
                    End Select
            End Select
        Case 2 ' Win Server 2003
            Select Case .wProductType
                Case 3
                    Select Case .wSuiteMask
                        Case

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值