文件名称:Hook API mingw DLL WH_MOUSE
文件大小:749KB
文件格式:ZIP
更新时间:2016-12-15 20:14:10
HookAPI mingw DLL WH_MOUSE WH_KEYBOARD
参考文章见:Hook Windows NT:http://blog.csdn.net/winsenjiansbomber/article/details/16891189 下表展示了WINUSER.H定义的一些钩子的类型: 钩子名称 作用层次 监视消息的类型和时机 WH_CALLWNDPROC 线程、系统 应用于SendMessage函数调用时。 WH_CALLWNDPROCRET 线程、系统 应用于SendMessage函数调用后。 WH_CBT 线程、系统 当基于计算机的训练(CBT)事件发生时调用钩子函数 WH_DEBUG 线程、系统 在系统调用其他钩子函数前执行的钩子,当然是除了WH_DEBUG了,不然会循环。 WH_FOREGROUNDIDLE 系统 系统空闲钩子,当系统空闲的时候调用钩子函数,这样就可以在这里安排一些优先级很低的任务 WH_GETMESSAGE 线程、系统 应用于GetMessage或PeekMessage函数执行后。 WH_HARDWARE 线程、系统 每当调用GetMessage或PeekMessage函数时,如果从消息队列中得到的是非鼠标和键盘消息,则调用钩子函数 WH_JOURNALRECORD 系统 日志记录钩子,用来记录发送给系统消息队列的所有消息 WH_JOURNALPLAYBACK 系统 日志回放钩子,用来回放日志记录钩子记录的系统事件 WH_KEYBOARD 线程、系统 每当调用GetMessage或PeekMessage函数时,如果从消息队列中得到的是WM_KEYUP或WM_KEYDOWN消息,则调用钩子函数 WH_KEYBOARD_LL 系统 像Ctrl+alt+del 系统会先处理掉,WH_KEYBOARD没法截获,而WH_KEYBOARD_LL可以,但很容易引起挂起之类的问题,不过操作系统通过LowLevelHooksTimeout限时操作,超时就直接被忽略。 WH_MOUSE 线程、系统 每当调用GetMessage或PeekMessage函数时,如果从消息队列中得到的是鼠标消息,则调用钩子函数 WH_MOUSE_LL 系统 截获整个系统的鼠标事件消息。 WH_MSGFILTER 线程、系统 应用于用户程序对对话框、菜单和滚动条的消息,先于程序行为。 WH_SYSMSGFILTER 系统 同WH_MSGFILTER,应用于系统范围,影响更大。 WH_SHELL 线程、系统 当Windows shell程序准备接收一些通知事件前调用钩子函数,如shell被激活和重画等 日志记录钩子和日志回放钩子可以放在安装钩子的程序中,并不需要单独放在一个动态链接库中,因为它们是由Windows系统调用的钩子。 这里也顺便给出常用的WinGW GCC编译器的DLL开发注意事项,及共享段定义的使用方法,这样就可以在CodeBloacks这类使用GCC编译器的IDE正确编译程序。提示一下,MinGW中的文件后缀a表示是一个链接库文件,如MinGW\lib\libuser32.a,这就相当VC的user.lib。同时为了MinGW生存Win32窗口程序而非控制台程序,可以通过添加-mwindows链接参数来设置正确的subsystem内容。
【文件预览】:
default.workspace
hookcross
----hookcross.depend(203B)
----hookcross.cbp(1KB)
----main.cpp(5KB)
----obj()
--------Debug()
----bin()
--------Debug()
hooksrv
----hooksrv.depend(164B)
----main.cpp(2KB)
----hooksrv.cbp(1KB)
----main.h(668B)
----obj()
--------Debug()
----bin()
--------Debug()