读书人

什么时候卸载一个钩子解决办法

发布时间: 2012-02-19 19:43:37 作者: rapoo

什么时候卸载一个钩子
#include <windows.h>



LRESULT CALLBACK MouseProc(int nCode, WPARAM wParam, LPARAM lParam)
{
。。。
return CallNextHookEx(g_hMouse, nCode, wParam, lParam);
}


int main(void)
{
MSG msg;

g_hMouse = SetWindowsHookEx( WH_MOUSE_LL, MouseProc, GetModuleHandle(NULL), 0 );
if (!g_hMouse) printf("Hook error: %d\n", GetLastError());


while ( GetMessage(&msg, NULL, 0, 0) )
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}

UnhookWindowsHookEx(g_hMouse);
printf("ok");
return (int) msg.wParam;
}

如上 程序,请问什么时候卸载钩子,打印出呢?
我都是直接关闭进程的啊,

[解决办法]
退出的时候
If the function retrieves a message other than WM_QUIT, the return value is nonzero.
http://msdn.microsoft.com/en-us/library/windows/desktop/ms644936(v=vs.85).aspx
[解决办法]
你的线程结束后钩子会自动卸载
如果需要收到控制台关闭的消息,用SetConsoleCtrlHandler

读书人网 >VC/MFC

热点推荐