在MFC程序中,钩子是一个强大的武器,要小心使用全局钩子,一般使用线程钩子,关键步骤如下:

下面所有代码都在cpp文件中添加:

1、 声明全局钩子变量,全局钩子函数:  
   HHOOK g_hMyHhook = NULL;
   LRESULT CALLBACK MyMouseProc( int nCode,WPARAM wParam,LPARAM lParam);

2、定义全局钩子函数:

   LRESULT CALLBACK MyMouseProc( int nCode,WPARAM wParam,LPARAM lParam)
   {
       if (wParam == WM_LBUTTONDOWN) //举例,截获鼠标左键单击消息
       {
       }
       return CallNextHookEx(g_hMyHhook,nCode,wParam,lParam);//传递消息
   }

3、初始化函数中加载钩子

   if(g_hMyHhook == NULL)
   {

      g_hMyHhook = SetWindowsHookEx(WH_MOUSE, MyMouseProc, NULL, GetCurrentThreadId());

4、程序退出卸载钩子

   if(g_hMyHhook)
   {
       UnhookWindowsHookEx(g_hMyHhook);
       g_hMyHhook = NULL;
   }
  

相关文章:

  • 2022-12-23
  • 2021-07-06
  • 2021-04-09
  • 2021-04-23
  • 2021-05-22
  • 2022-01-01
  • 2021-07-04
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2022-02-13
  • 2022-12-23
  • 2021-12-20
  • 2021-08-01
  • 2021-09-03
相关资源
相似解决方案