SetWindowsHookEx函数参数详解
来源:互联网 发布:c语言打印三角形重叠 编辑:程序博客网 时间:2024/06/05 03:34
下系统钩子(键盘钩子,鼠标钩子等等)已是我们最长用的手段,要做钩子程序就必须用到下面这几个函数使用动态链接库(dll),即要实现全局系统钩子。这里就这几个函数的参数做一下详细的讲解。
需要使用到WindowsAPI中的两个函数:
一. HHOOK SetWindowsHookEx(
int idHook, //要安装的钩子类型 (参考下面的IdHook取值)
HOOKPROC lpfn, //钩子过程的指针 ,也即拦截到指定系统消息后的预处理过程,须定义在DLL中,
HINSTANCE hMod, //应用程序实例的句柄 如果是全局钩子, hInstance是DLL句柄(DllMain中给的模块地址。就是包含HookProc的动态库加载地址。否则给0就可以了,即勾自己。 当前进程
DWORD dwThreadId; //要安装钩子的线程ID ,指定被监视的线程,如果明确指定了某个线程的ID就只监视该线程,此时的钩子即为线程钩子;如果该参数被设置为0,则表示此钩子为监视系统所有线程的全局钩子。);
其中idHook参数可以取如下常量:
WH_CALLWNDPROC //窗口钩子,当系统向目标窗口发送消息时将触发此钩子
WH_CALLWNDPROCRET //窗口钩子,当窗口处理完消息后将触发此钩子
WH_CBT //当Windows激活、产生、释放(关闭)、最小化、最大化或改变窗口时都将触发此事件
WH_DEBUG //调试钩子
WH_GETMESSAGE //当往消息队列中增加一个消息时将触发此钩子
WH_JOURNALPLAYBACK //回放钩子,可以用于播放已记录的鼠标和键盘的操作
WH_JOURNALRECORD //记录钩子,可以用于记录鼠标和键盘的操作,木马程序可以使用此钩子窃取受控方在屏幕中敲入的密码
WH_KEYBOARD //当敲击键盘时将触发此钩子
WH_MOUSE //当有鼠标操作时将触发此钩子
WH_MSGFILTER //消息过滤钩子
WH_SHELL //Shell钩子
WH_SYSMSGFILTER //系统消息过滤钩子
使用WH_CBT系统级钩子,当Windows激活、产生、释放(关闭)、最小化、最大化或改变窗口时都将触发此事件,我们在自定义消息函数中只处理关闭窗口的消息,在自定义的钩子函数若返回0则允许对窗体的操作,返回1则阻止窗口最大化、最小化等操作。另外此钩子必须使用动态链接库(dll)也就是钩子函数必须写在DLL里。
二. BOOL UnhookWindowsHookEx(
HHOOK hhk //要注销的钩子句柄
)
配合这两个函数还要配合一些相应的回调函数,一个钩子就做好了。钩子的好处说不完。具体功能就看你发挥了。(编程世界www.ibiancheng.cn原创)
- SetWindowsHookEx函数参数详解
- SetWindowsHookEx函数参数详解
- SetWindowsHookEx函数参数详解
- SetWindowsHookEx函数参数详解
- SetWindowsHookEx函数详解
- SetWindowsHookEx函数详解
- SetWindowsHookEx详解
- SetWindowsHookEx详解
- SetWindowsHookEx详解
- SetWindowsHookEx详解
- SetWindowsHookEx()详解
- SetWindowsHookEx详解
- SetWindowsHookEx详解
- SetWindowsHookEx 函数
- SetWindowsHookEx 详解(一)
- SetWindowsHookEx 详解(二)
- SetWindowsHookEx 详解(三)
- SetWindowsHookEx钩子详解
- MPEG-2简介及MPEG-2编解码 (4)
- MPEG-2简介及MPEG-2编解码 (5)
- C#中实现VB中的CreateObject方法.
- Delphi快捷键 收藏
- mfc 常用方法
- SetWindowsHookEx函数参数详解
- SQL触发器实例讲解
- Linux操作系统下三种配置环境变量的方法
- 入职一年整
- 程序开发的路上你迷茫了吗?
- 迁移表数据
- Sharepoint Solution 三: 部署Sharepoint Web Part (dwp)
- Red Hat Enterprise Linux 5服务器配置之Vsftpd配置
- MFC界面开发笔记(三)