C#钩子本线程内消息拦截

这篇博客介绍了如何使用C#结合WinAPI设置和管理线程钩子,以拦截和处理特定的消息。通过SetWindowsHookEx安装钩子,定义HookProc委托,使用CallNextHookEx调用下一个钩子,并通过UnhookWindowsHookEx卸载钩子。示例展示了如何在同一个线程内的两个Form之间拦截WM_PAINT消息。
摘要由CSDN通过智能技术生成
钩子其实就是调用一下API而已:
 
1、安装钩子:
  SetWindowsHookEx
函数原形:HHOOK SetWindowsHookEx(
int idHook, // 钩子类型,
HOOKPROC lpfn, // 钩子函数地址
INSTANCE hMod, // 钩子所在的实例的句柄,
DWORD dwThreadId // 钩子所监视的线程的线程号
)
hMod: 对于线程序钩子,参数传NULL;
对于系统钩子:参数为钩子DLL的句柄
  dwThreadId:对于全局钩子,该参数为NULL。
钩子类型用WH_CALLWNDPROC=4(发送到窗口的消息。由SendMessage触发)
返回:成功:返回SetWindowsHookEx返回所安装的钩子句柄;
失败:NULL;
 
2、回调,你要截获消息就在这里进行:
LRESULT WINAPI MyHookProc(
int nCode , // 指定是否需要处理该消息
WPARAM wParam, // 包含该消息的附加消息
LPARAM lParam // 包含该消息的附加消息
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值