标准输出 (, 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))
.如果真结束
返回 (“”)