w ndows系统的默认语言,易语言GetVersionExA获取windows系统版本

我们可以利用GetVersionExA来获取windows 8上获取系统版本信息,GetVersionExA是kernel32里的一个API,这里提供对这个API的学习调用,要想取得准确的版本我们还得结合注册表,去判断封装。

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的组合来判断系统版本,参考如下:

6530b1d1bd7987d9820a4872a19888dc.png

附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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值