當前位置: 主頁 > 百科 > 計算機編程 > 易語言源碼 >
0 Comments

取系統版本源碼

發布于:2016-07-05  |   作者:http://www.tradlc.live  |   已聚集:人圍觀

標準輸出 (, 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))

.如果真結束

返回 (“”)


標簽:                   喜歡:收藏
2019年马会全年资料