hook

       mfc用hook来截获我们所感兴趣的消息。。。

   SetWindowsHookEx函数用来设置一个hook,函数如下

HHOOK SetWindowsHookEx(      

    int idHook,

    HOOKPROC lpfn,     HINSTANCE hMod,     DWORD dwThreadId );

   idHook用来表示我们希望截获的消息类型     lpfn: 指向一个hook过程,如果dwThreadId 参数是0或者是其他线程的一个标识,lpfn参数必须指向一个动态链接库。否则的话,lpfn指向一段代码,hook过程指向本线程。      hMod: 一个指向了动态链接库(包含hook过程,指向lpfn函数的),hmod参数必须设置为空如果dwThreadId 参数是指向本线程的

   dwThreadId:标识了hook过程属于的线程id,当设置为0时,代表所有的线程都拥有该hook过程。

     下面我们创建一个屏蔽当前线程的hook过程、、

     创建一个对话框应用程序,在OnInitDialog()函数中写入SetWindowsHookEx(WH_MOUSE,MouseProc,NULL,GetCurrentThreadId());

然后声明全局函数MouseProc。写入LRESULT CALLBACK MouseProc(          int nCode,
    WPARAM wParam,
    LPARAM lParam
)
{
 return  1;
}

我们也可以屏蔽键盘消息m_hook=SetWindowsHookEx(WH_KEYBOARD,KeyboardProc ,NULL,GetCurrentThreadId());

LRESULT CALLBACK KeyboardProc(          int code,
    WPARAM wParam,
    LPARAM lParam
)
{
 if(wParam==VK_SPACE||wParam==VK_RETURN)
  return   1;
 else
  return   CallNextHookEx(m_hook,code,wParam,lParam);
}

表示当我们按下的是空格键或者回车键时,将会被屏蔽。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值