上节课视频教学我们封装了一个消息钩子的动态链接文件,这节课我们通过易语言主程序实现调用,从而对记事本外部窗口的的消息截获,换成我们的hook内容。首先我们封装一个开始截获和结束截获的方法。我们调用LoadLibraryA动态加载我们上节课封装的消息钩子动态链接文件msghook.dll
开始截获
.版本 2
.子程序 开始截获, 逻辑型
.参数 窗口句柄
.局部变量 hmod, 整数型
.局部变量 lpProc, 子程序指针
.局部变量 ThreadID, 整数型
.局部变量 hHook, 整数型
.如果真 (窗口句柄 = 0)
返回 (假)
.如果真结束
.如果真 (GetPropA (窗口句柄, #prop) ≠ 0)
' 不等于0说明已经加载过钩子了
返回 (假)
.如果真结束
' 第一步 获取 Hookdll的 句柄
hmod = LoadLibraryA (取运行目录 () + “\msghook.dll”)
' 第二步 获取GetMsgProc 这个回调函数的 指针
lpProc = GetProcAddress (hmod, “GetMsgProc”)
' 第三部 获取截获窗口的线程ID
ThreadID = GetWindowThreadProcessId (窗口句柄, 0)
' 给指定的窗口安装消息钩子,该窗口在收到postMessage的消息后会自动加载钩子函数所在的DLLmsghook.dll
hHook = SetWindowsHookExA (#WH_GETMESSAGE, lpProc,