易语言回调函数,子程序指针!
看下面的这个例子:-----------------------------------------------------------------.版本2.支持库spe...
看下面的这个例子:
-----------------------------------------------------------------
.版本 2
.支持库 spec
.程序集 窗口程序集1
.子程序 _按钮1_被单击
文件进度复制 (“E:\123.dat”, “E:\456.dat”, &信息显示)
.子程序 信息显示
.参数 尺寸, 整数型
.参数 复制, 整数型
.参数 进度, 整数型
调试输出 (尺寸, 复制, 进度)
---------------------------------------------------------------
文件进度复制的第三个参数为程序指针,所指向的是 信息显示 这个子程序,文件复制的时候会改变里面进度的值,现在,我想问的是我们如何在 文件进度复制 这个子程序中调用传递的子程序指针并随时改变进度这个参数的值?想知道这样的如何实现,随便写个代码让我明白如何来做,谢谢各位了! 展开
-----------------------------------------------------------------
.版本 2
.支持库 spec
.程序集 窗口程序集1
.子程序 _按钮1_被单击
文件进度复制 (“E:\123.dat”, “E:\456.dat”, &信息显示)
.子程序 信息显示
.参数 尺寸, 整数型
.参数 复制, 整数型
.参数 进度, 整数型
调试输出 (尺寸, 复制, 进度)
---------------------------------------------------------------
文件进度复制的第三个参数为程序指针,所指向的是 信息显示 这个子程序,文件复制的时候会改变里面进度的值,现在,我想问的是我们如何在 文件进度复制 这个子程序中调用传递的子程序指针并随时改变进度这个参数的值?想知道这样的如何实现,随便写个代码让我明白如何来做,谢谢各位了! 展开
2个回答
展开全部
首先,不知道楼主对HOOK 知识如何,如果对HOOK知识不是很了解的话,看看一楼的基本知识,如果明白的话,帮你解释下 在易语言里 如何 实现钩子 以及 钩子函数
首先 第一步 注册钩子:钩子句柄 = SetWindowsHookEx (13, &钩子函数, GetModuleHandleA (0), 0)
这里可以看到 第二个参数 使我们的钩子函数,遇到函数 指针参数时 需要在函数名前加 &
符号 以说明传递的是函数的指针,
第二步 钩子函数: .版本 2
.子程序 钩子函数, 整数型, ,
.参数 icode, 整数型
.参数 wparam, 整数型
. 参数 lparam, 整数型 这是这个函数的定义,这个函数必须要这么定义才可以,参数数量和类型
以及返回值必须按照这个定义,在这个函数里 可以进行消息拦截处理,不过要记住一旦你处理了消息要返回1 告知系统这个消息被你拦截处理了,否则要 返回 CallNextHookEx (钩子句柄, icode, wparam, lparam) 以便系统执行其他的钩子
第三步 就是卸载钩子UnhookWindowsHookEx (钩子句柄)
首先 第一步 注册钩子:钩子句柄 = SetWindowsHookEx (13, &钩子函数, GetModuleHandleA (0), 0)
这里可以看到 第二个参数 使我们的钩子函数,遇到函数 指针参数时 需要在函数名前加 &
符号 以说明传递的是函数的指针,
第二步 钩子函数: .版本 2
.子程序 钩子函数, 整数型, ,
.参数 icode, 整数型
.参数 wparam, 整数型
. 参数 lparam, 整数型 这是这个函数的定义,这个函数必须要这么定义才可以,参数数量和类型
以及返回值必须按照这个定义,在这个函数里 可以进行消息拦截处理,不过要记住一旦你处理了消息要返回1 告知系统这个消息被你拦截处理了,否则要 返回 CallNextHookEx (钩子句柄, icode, wparam, lparam) 以便系统执行其他的钩子
第三步 就是卸载钩子UnhookWindowsHookEx (钩子句柄)
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询