易语言吧 关注:266,481贴子:1,664,062

易语言【全局】【键盘、鼠标钩子(hook)】教程[纯API不用模块]

只看楼主收藏回复

首先定义DLL。。作用备注里有。下面会详细说明。
.版本 2
.DLL命令 GetModuleHandle, 整数型, , "GetModuleHandleA", , 获取句柄
.参数
lpModuleName, 整数型
.DLL命令 CallNextHookEx, 整数型, , "CallNextHookEx", ,
下一个钩子
.参数 hhk, 整数型
.参数 nCode, 整数型
.参数 wParam, 整数型
.参数 lParam, 整数型
.DLL命令 SetWindowsHookEx, 整数型, , "SetWindowsHookExA", ,
创建钩子
.参数 idHook, 整数型
.参数 lpfn, 子程序指针
.参数 hmod, 整数型
.参数 dwThreadId, 整数型
.DLL命令 UnHookWindowsHookEx, 逻辑型, , "UnhookWindowsHookEx",
, 卸载钩子
.参数 hhk, 整数型
.DLL命令 WindowFromPoint, 整数型, "user32",
"WindowFromPoint", ,
返回包含了指定点的窗口的句柄。忽略屏蔽、隐藏以及透明窗口 包含了指定点的窗口的句柄。如指定的点处没有窗口存在,则返回零
.参数 xPoint,
整数型, , x点值
.参数 yPoint, 整数型, , y点值;
.DLL命令 CopyMemory, , ,
"RtlMoveMemory", , 拷贝内存
.参数 Destination, MOUSEHOOKSTRUCT, 传址
.参数
Source, 整数型
.参数 Length, 整数型
GetModuleHandle()是获取一个应用程序或动态链接库的模块句柄。。不要想太多...
CallNextHookEx()调用下一个钩子
SetWindowsHookEx()创建钩子
UnHookWindowsHookEx()卸载钩子
WindowFromPoint()获取坐标处的窗口句柄
CopyMemory()拷贝内存。。也不要想太多。。这个不是主角....下面只出现1次。
然后定义2个数据类型。等下用到的
.版本 2
.数据类型 MOUSEHOOKSTRUCT .成员 pt, POINT .成员 hwnd, 整数型 .成员 wHitTestCode, 整数型 .成员 dwExtraInfo, 整数型
.数据类型 POINT .成员 X, 整数型 .成员 Y, 整数型

.然后可以开始写代码了。。
第一步创建2个程序集变量。用来存钩子的代号的。
接着就是创建钩子了。不创建怎么用呢。
.版本 2
.子程序 __启动窗口_创建完毕
键盘钩子 = SetWindowsHookEx (13, &键盘钩子回调函数, GetModuleHandle (0), 0) ' 创建钩子鼠标钩子 = SetWindowsHookEx (14, &鼠标钩子回调函数, GetModuleHandle (0), 0)
复制代码进去后我解释一下。setWindowsHookEx()大家都知道他是创建钩子用的。我来解释一下参数。1:钩子类型。不多说了。你一定也能看出来。键盘13.鼠标14.
第二个回调函数指针。。。说到这。首先创建2个函数函数名为:键盘钩子回调函数和鼠标钩子回调函数。
&是求子程序指针符号。
回调函数是钩子里最重要的东西。
。ok写完这两句后 至于剩下2个参数。我只知道全局的钩子都这么填。也许GetModuleHandle(0)是获取全局的句柄吧。。



1楼2012-08-12 10:42回复
    h t t p : / / w w w . 3 6 0 0 g z . c n / t h r e a d - 1 1 6 7 7 6 - 1 - 1 . h t ml 里面有。。里面的那篇文章也是我写的。


    3楼2012-08-12 10:45
    回复


      5楼2012-08-12 12:57
      回复
        看不懂,新人求带走


        IP属地:广东来自Android客户端6楼2012-08-12 13:56
        回复
          那些参数和常量太多了,没法记.我都是用的API助手,直接复制.
          写模块是必须要用到DLL命令的,API学不会的话只能用别人的模块,还有很多高深的东西做不出来


          IP属地:辽宁7楼2012-08-13 00:06
          收起回复
            不错


            IP属地:北京来自手机贴吧8楼2012-12-30 20:49
            回复
              不错


              IP属地:北京来自手机贴吧9楼2012-12-30 20:50
              回复
                感觉WindowsHook都玩烂了


                来自iPhone客户端10楼2014-05-25 16:56
                收起回复
                  很好


                  11楼2014-06-26 22:41
                  回复
                    小白看不懂,,


                    来自Android客户端12楼2014-06-26 22:59
                    回复
                      为何不用日志钩子


                      来自Android客户端13楼2014-06-27 17:19
                      回复
                        没上传啊


                        IP属地:山东14楼2014-11-30 01:03
                        回复
                          ============================@wlanz 恶意挖坟,坟贴勿回,勿回===========================


                          IP属地:海南本楼含有高级字体15楼2014-11-30 02:23
                          回复
                            鼠标侧键都是523 524 怎么获取


                            IP属地:江西16楼2018-04-26 20:22
                            回复