当前位置: 主页 > 百科 > 计算机编程 > 易语言源码 >
-14 Comments

取系统版本源码

发布于:2016-07-05  |   作者:http://www.zxjsq.net  |   已聚集:人围观

标准输出 (, API_取系统版本 ())

标准输入 ()

返回 (0)  ' 可以根据您的需要返回任意数值


.子程序 API_取系统版本, 文本型, 公开, 支持获取win98、win2000 、winXP、win2003 、win2008 、win7 、win8 、win2012系统版本。

.局部变量 m_osvi, OSVERSIONINFOEX

.局部变量 m_si, SYSTEM_INFO

.局部变量 m_dwType

.局部变量 m_system, 文本型

.局部变量 m_version, 文本型

.局部变量 m_dwMajorVersion, 整数型

.局部变量 m_dwMinorVersion, 整数型

.局部变量 m_dwBuildNumber, 短整数型


m_osvi.dwOSVersionInfoSize = 156

.如果真 (GetVersionEx (m_osvi))

    GetSystemInfo (m_si)

    .如果真 (#VER_PLATFORM_WIN32_NT = m_osvi.dwPlatformId 且 m_osvi.dwMajorVersion > 4)

        RtlGetNtVersionNumbers (m_osvi.dwMajorVersion, m_osvi.dwMinorVersion, m_dwBuildNumber)

        m_osvi.dwBuildNumber = m_dwBuildNumber

        .如果真 (m_osvi.dwMajorVersion = 10)

            .如果真 (m_osvi.dwMinorVersion = 0)

                m_system = 选择 (m_osvi.wProductType = #VER_NT_WORKSTATION, “Windows 10 Insider Preview ”, “Windows Server Technical Preview ”)

            .如果真结束


        .如果真结束

        .如果真 (m_osvi.dwMajorVersion = 6)

            .判断开始 (m_osvi.dwMinorVersion = 0)

                m_system = 选择 (m_osvi.wProductType = #VER_NT_WORKSTATION, “Windows Vista ”, “Windows Server 2008 ”)

            .判断 (m_osvi.dwMinorVersion = 1)

                m_system = 选择 (m_osvi.wProductType = #VER_NT_WORKSTATION, “Windows 7 ”, “Windows Server 2008 R2 ”)

            .判断 (m_osvi.dwMinorVersion = 2)

                m_system = 选择 (m_osvi.wProductType = #VER_NT_WORKSTATION, “Windows 8”, “Windows Server 2012”)

            .判断 (m_osvi.dwMinorVersion = 3)

                m_system = 选择 (m_osvi.wProductType = #VER_NT_WORKSTATION, “Windows 8.1”, “Windows Server 2012 R2”)

            .默认


            .判断结束


        .如果真结束

        .如果真 (m_osvi.dwMajorVersion = 5 且 m_osvi.dwMinorVersion = 0)

            m_system = “Windows 2000 ”

            .如果 (m_osvi.wProductType = 1)

                m_version = “Professional”

            .否则

                .如果真 (位与 (m_osvi.wSuiteMask, 128) = 0)

                    m_version = “Datacenter Server”

                .如果真结束

                .如果 (位与 (m_osvi.wSuiteMask, 2) = 0)

                    m_version = “Advanced Server”

                .否则

                    m_version = “Server”

                .如果结束


            .如果结束


        .如果真结束

        .如果真 (m_osvi.dwMajorVersion = 5 且 m_osvi.dwMinorVersion = 1)

            m_system = “Windows XP ”

            .如果 (位与 (m_osvi.wSuiteMask, 512) = 1)

                m_version = “Home Edition”  ' “家庭版”

            .否则

                m_version = “Professional”  ' “专业版”

            .如果结束


        .如果真结束

        .如果真 (m_osvi.dwMajorVersion = 5 且 m_osvi.dwMinorVersion = 2)

            .如果 (GetSystemMetrics (89) ≠ 0)

                m_system = “Windows Server 2003 R2, ”

            .否则

                .判断开始 (位与 (m_osvi.wSuiteMask, 8192) = 0)

                    m_version = “Windows Storage Server 2003”

                .判断 (位与 (m_osvi.wSuiteMask, 32768) = 0)

                    m_version = “Windows Home Server”

                .判断 (m_osvi.wProductType = 1 且 m_si.wProcessorArchitecture = 9)

                    m_version = “Windows XP Professional x64 Edition”  ' Xp专业版64位系统

                .默认

                    m_version = “Windows Server 2003, ”

                .判断结束


            .如果结束


        .如果真结束

        .如果真 (m_osvi.dwMajorVersion = 4 且 m_osvi.dwMinorVersion = 10)

            m_system = “Windows 98”

        .如果真结束

        .如果真 (m_osvi.dwMajorVersion ≥ 6)

            GetProductInfo (m_osvi.dwMajorVersion, m_osvi.dwMinorVersion, 0, 0, m_dwType)

            .判断开始 (m_dwType = 1)  ' 旗舰版

                m_version = “Ultimate Edition”

            .判断 (m_dwType = 48)  ' 专业版

                m_version = “Professional”

            .判断 (m_dwType = 3)  ' 家庭高级版

                m_version = “Home Premium Edition”

            .判断 (m_dwType = 2)  ' 家庭普通版

                m_version = “Home Basic Edition”

            .判断 (m_dwType = 4)  ' 企业版

                m_version = “Enterprise Edition”

            .判断 (m_dwType = 6)  ' 商业版

                m_version = “Business Edition”

            .判断 (m_dwType = 11)  ' 入门版

                m_version = “Starter Edition”

            .判断 (m_dwType = 18)  ' 服务器版

                m_version = “Cluster Server Edition”

            .判断 (m_dwType = 8)  ' 服务器企业版

                m_version = “Datacenter Edition”

            .判断 (m_dwType = 12)

                m_version = “Datacenter Edition (core installation)”

            .判断 (m_dwType = 10)

                m_version = “Enterprise Edition”

            .判断 (m_dwType = 14)

                m_version = “Enterprise Edition (core installation)”

            .判断 (m_dwType = 15)

                m_version = “Enterprise Edition for Itanium-based Systems”

            .判断 (m_dwType = 9)  ' 小型服务器

                m_version = “Small Business Server”

            .判断 (m_dwType = 25)

                m_version = “Small Business Server Premium Edition”

            .判断 (m_dwType = 13)

                m_version = “Standard Edition (core installation)”

            .判断 (m_dwType = 17)

                m_version = “Web Server Edition”

            .默认


            .判断结束


        .如果真结束


    .如果真结束

    返回 (m_system + “ ” + m_version + “ ” + 到文本 (m_osvi.szCSDVersion))

.如果真结束

返回 (“”)


标签:                   喜欢:收藏