VC进程相关的学习(二)(钩子基础)

    技术2022-05-13  5

    Windows是建立在事件驱动机制上的,也就是所有消息的传递都是基于事件的,钩子就是截取这些消息进行处理。

     

    钩子的种类:线程钩子和系统钩子。     线程钩子只处理本线程的事件。     系统钩子可以处理系统级的事件。

     

    钩子的用法:    系统钩子暂时用不到,下面是线程钩子的使用    定义钩子函数,不同钩子的回调函数是不同的,具体按SetWindowHookEx的F1即可

         LRESULT CALLBACK MouseProc(int nCode, WPARAM wparam, LPARAM lParam) { if(wparam == WM_MOUSEMOVE || wparam == WM_NCMOUSEMOVE || MyHook::instance().Hooks[nCode]._bActive) { POINT point = ((MOUSEHOOKSTRUCT *)lParam)->pt; point.x = point.x; point.y = point.y; } return CallNextHookEx(hook, nCode, wparam, lParam); }

         安装钩子

         HHOOK hook = SetWindowsHookEx(idHook, lpfn, NULL, GetCurrentThreadId());

         卸载钩子

         UnhookWindowsHookEx(hook);


    最新回复(0)