易语言GetVersionExA获取windows系统版本

GetVersionExA

.版本 2
 
.DLL命令 GetVersionExA, 逻辑型, "kernel32", "GetVersionExA"
    .参数 lpVersionInformation, OSVERSIONINFO, , 0

数据类型 OSVERSIONINFO

.版本 2
 
.数据类型 OSVERSIONINFO
    .成员 dwOSVersionInfoSize, 整数型, , , //初始化为结构的大小
    .成员 dwMajorVersion, 整数型, , , //系统主版本号
    .成员 dwMinorVersion, 整数型, , , //系统次版本号
    .成员 dwBuildNumber, 整数型, , , //系统构建号
    .成员 dwPlatformId, 整数型, , , //系统支持的平台(详见附1)
    .成员 szCSDVersion, 整数型, , "128", //系统补丁包的名称  
    .成员 wServicePackMajor, 整数型, , , //系统补丁包的主版本  
    .成员 wServicePackMinor, 整数型, , , //系统补丁包的次版本  
    .成员 wSuiteMask, 整数型, , , //标识系统上的程序组  
    .成员 wProductType, 整数型, , , //标识系统类型  
    .成员 wReserved, , , , //保留,未使用
typedef struct {  
    DWORD dwOSVersionInfoSize;       //在使用GetVersionEx之前要将此初始化为结构的大小  
    DWORD dwMajorVersion;            //系统主版本号  
    DWORD dwMinorVersion;            //系统次版本号  
    DWORD dwBuildNumber;             //系统构建号  
    DWORD dwPlatformId;              //系统支持的平台  
    TCHAR szCSDVersion[128];         //系统补丁包的名称  
    WORD wServicePackMajor;          //系统补丁包的主版本  
    WORD wServicePackMinor;          //系统补丁包的次版本  
    WORD wSuiteMask;                 //标识系统上的程序组  
    BYTE wProductType;               //标识系统类型  
    BYTE wReserved;                  //保留,未使用  
} OSVERSIONINFOEX, *POSVERSIONINFOEX;

这个结构在Windows 2000后出现,老版本的OSVERSIONINFO结构没有wServicePackMajor、wServicePackMinor、wSuiteMask、wProductType和wReserved这几个成员。

易语言调用

.版本 2
.支持库 spec
 
.程序集 窗口程序集_启动窗口
 
.子程序 _按钮1_被单击
.局部变量 a, OSVERSIONINFO
 
a.dwOSVersionInfoSize = 156
GetVersionExA (a)
调试输出 (a.dwMajorVersion)
调试输出 (a.dwMinorVersion)

我们要根据主版本dwMajorVersion和次版本号dwMinorVersion的组合来判断系统版本,参考如下:

511遇见

附1:dwPlatformId的值

VER_PLATFORM_WIN32s (Win32s),

VER_PLATFORM_WIN32_WINDOWS (Windows 95/Windows 98),

VER_PLATFORM_WIN32_NT (Windows NT/Windows 2000),

VER_PLATFORM_WIN32_CEHH (Windows CE).

附2:wSuiteMask的值:

VER_SUITE_SMALLBUSINESS,

VER_SUITE_ENTERPRISE,

VER_SUITE_BACKOFFICE,

VER_SUITE_COMMUNICATIONS,

VER_SUITE_TERMINAL,

VER_SUITE_SMALLBUSINESS_RESTRICTED,

VER_SUITE_EMBEDDEDNT,

VER_SUITE_DATACENTER.

附3:wProductType的值:

VER_NT_WORKSTATION,

VER_NT_SERVER,

VER_NT_DOMAIN_CONTROLLER.
MSDN api 链接
https://docs.microsoft.com/zh-cn/windows/win32/api/sysinfoapi/nf-sysinfoapi-getversionexa


发布日期:

所属分类: 易语言 标签: