易易语言图解教程 第10章API函数的应用 AI函数,也称DLL命令,是 Windows 系统外部动态连接库(即DLL库)中的 命令。和VB,VC一样,易语言对API也 有很好的支持。API是 Windows的基础, 学会使用API就可以实现 Windows绝大 部分的功能。 本章学习内容: 10.1如何定义API函数10.3外部DLL库的应用 10.2API函数的综合应用10.4课后练习 10.1如何定义API函数 易语言中,使用一个API函数前(也称DLL命令),首先要对该函数进 行定义,定义DLL命令涉及到以下主要属性: D11命令名、返回值类型、D11库文件名、D11命令在D11库中的对应 命令名、D11命令参数。 196
196 10.1 如何定义 API 函数 本章学习内容: 10.1 如何定义 API 函数 10.3 外部 DLL 库的应用 10.2 API 函数的综合应用 10.4 课后练习 第 10 章 API 函数的应用 API 函数,也称 DLL 命令,是 Windows 系统外部动态连接库(即 DLL 库)中的 命令。和 VB,VC 一样,易语言对 API 也 有很好的支持。API 是 Windows 的基础, 学会使用 API 就可以实现 Windows 绝大 部分的功能。 易语言中,使用一个 API 函数前(也称 DLL 命令),首先要对该函数进 行定义,定义 DLL 命令涉及到以下主要属性: Dll 命令名、返回值类型、Dll 库文件名、Dll 命令在 Dll 库中的对应 命令名、Dll 命令参数
一第1章AB函数的应用 易话言- Windows窗口程序-[D11命令定义表 「E程序E情Y查着1甄入数1调试B运行1工具窗口E帮助 程序数据 I命令1 m库文件名 在库中对应命令名 匚夢效名卖传址数备注」 国程序黑性,口 行:1列:1 下面用一个可以取出当前 所有的窗口句柄的例程,来进 一步了解DLL命令的定义方法 和使用。 雳易语言一E:tepV7《+天学会易语言固解教程》\第10章AP应用例程\A简单例程之一枚举所…□回区 囫E程序E编辑y查着工折入B数据库卫调试B运行工工具重窗口帮助 国固电的Cm日田”,“ 手护出雪p 简单例程之。枚举所有千窗口min 基本组 一个按钮组程序 出桌面所有子窗口的窗口句柄 件,将标 國 题改成“列 字_F 出桌面所有 图sy 子窗目的窗 当 口句柄 园 片平铺 景音乐 ②拉出一个列表框组件 外部组 女持库回程序羅性「 外部事件组件 197
197 下面用一个可以取出当前 所有的窗口句柄的例程,来进 一步了解DLL命令的定义方法 和使用。 ②拉出一个列表框组件。 ① 拉 出 一个按钮组 件,并将标 题改成“列 出桌面所有 子窗口的窗 口句柄
一囫一易语言图解教程一 注意:API资料如何查找? Windos中的DLL命令有很多,网上也有许多API的帮助文件,列出了常用的 API令的相关资料。使用API之前,可以先上网下载一个API的帮助文档 下面会用到1个DLL命令: Find windowExA,这个命令可以在窗口列表中 寻找与指定条件相符的第一个子窗口 ④新建一个DLL命令 定义DLL命令在易语言 中使用的命令名,可以随意定 m命令名 义,最好是定义一个方便识别 取子窗口句柄 的命令名 m1库文件名 user32 定义DLL库文件名。按照 在m库中对应命令名 API资料中填写,不可以自定 Findwindow ExA 参数名类型传址」数组注1 整数型 整数型 「整 数型 定义DLL库中对应的命 Ipsa 人数型 令名。按照API资料中填写, 不可以自定义。 API资料中描述的,有几个参 数,就添加几个参数,并且参数的 类型要和资料中的符合,参数名可 以自定义。 198
198 注意:API 资料如何查找? Windos 中的 DLL 命令有很多,网上也有许多 API 的帮助文件,列出了常用的 API 令的相关资料。使用 API 之前,可以先上网下载一个 API 的帮助文档。 下面会用到 1 个 DLL 命令:FindWindowExA,这个命令可以在窗口列表中 寻找与指定条件相符的第一个子窗口。 ④新建一个 DLL 命令。 定义 DLL 命令在易语言 中使用的命令名,可以随意定 义,最好是定义一个方便识别 的命令名 定义 DLL 库文件名。按照 API 资料中填写,不可以自定 义。 定义 DLL 库中对应的命 令名。按照 API 资料中填写, 不可以自定义。 API 资料中描述的,有几个参 数,就添加几个参数,并且参数的 类型要和资料中的符合,参数名可 以自定义
一第1章AB函数的应用 从API的帮 助文件里可以查 目录c)索引 出User32是DLL indyindoNEx 库文件名 clare Function Findwindow E Libuser32 Aias Window=消息函数 indYindowExA" (yVal hindI As Long, ByVal hYnde As Lor FindwindowEx Byval lps:2 As 是库命令名 在窗口列表中寻找与指定条件相符的第一个子窗口 返回值 La找的蜜口的句,如未找到符窗口,则回零,会设置 hAndl 真后t吾(案找子的要日非浅为真不字里 口,所以也会对它们进行查我 Lng,从这个窗口后开始查找。这样使可利 这里 口,如设为零,表示从第一个子窗口开始搜索 有四个参 String,欲搜来的类名,零表示沼略 String,欲搜来的类名。零表示忽略 数的类型 GetClassLong 与说明 ⑥双击按钮,在按钮1被单击的子程序下输入代码: 列表框1清空0 hWnd=取子窗口句柄(0,0,0,0) 判断循环首(hWnd≠0) ⑤新建一个整 列表框1加入项目(到文本(hWnd),) 数型的变量。 hWnd=取子窗口句柄(0,hWnd,0,0) 判断循环尾0 「返回值类型公开备注 按钮单击 变量名类型」静态数组|备注 Mnd整数型 列表框1.清空0 h"nd=取子窗口句柄0,0,0,0) 用判断循环 母判断循环首0nd≠0) 首命令,循环取 列表框1加入项目倒文本Q"nd,) 出当前所有子窗 =取子窗口句柄(,hnd,0,0) 口的窗口句柄 判断循环尾0 199
199 这 里 有四个参 数的类型 与说明。 从 API 的帮 助文件里可以查 出 User32 是 DLL 库 文 件 名 , FindWindowExA 是库命令名。 ⑥双击按钮,在_按钮 1_被单击的子程序下输入代码: 列表框 1.清空 () hWnd = 取子窗口句柄 (0, 0, 0, 0) 判断循环首 (hWnd ≠ 0) 列表框 1.加入项目 (到文本 (hWnd), ) hWnd = 取子窗口句柄 (0, hWnd, 0, 0) 判断循环尾 () ⑤新建一个整 数型的变量。 用判断循环 首命令,循环取 出当前所有子窗 口的窗口句柄
一囫一易语言图解教程一 易ApI简单例程之-枚举所有子窗口〔Find 按下 列出桌面所有子窗口的面口句柄 键试运行,点 击按钮后,列 表框就列出 65680 了所有子窗 的窗口句 131180 柄了。 197626 1246248 2294912 1180680 1246022 10.2AP函数的综合应用 用API函数,可以实现 很多特殊的效果,下面练习 用3个DLL命令实现窗体的 透明效果。 用到了3个DLL命令,分别是 Get WindowLong:从指定窗口的结构中取得信息 Setwindowlong:在窗口结构中为指定的窗口设置信息 SetLayered WindowAttributes:设置窗体的透明色 200
200 10.2 API 函数的综合应用 按下 F5 键试运行,点 击按钮后,列 表框就列出 了所有子窗 口的窗口句 柄了。 用到了 3 个 DLL 命令,分别是: GetWindowLong:从指定窗口的结构中取得信息。 SetWindowLong:在窗口结构中为指定的窗口设置信息。 SetLayeredWindowAttributes:设置窗体的透明色。 用 API 函数,可以实现 很多特殊的效果,下面练习 用 3 个 DLL 命令实现窗体的 透明效果