g_hHook = ::SetWindowsHookEx(WH_MOUSE,MouseHookProc,(HINSTANCE)NULL,::GetCurrentThreadId()); 如上面,dwThreadId当然是hook所在的线程id咯
而且MSDN上说得挺清楚:
WH_MOUSE_LL Global only 
这就说明这个钩子只能放在dll中~~~ 所以
不过WH_KEYBOARD_LL 的定义我好像也找不到哦 @@ :p

解决方案 »

  1.   

    to gameboy999:
    如果dwThreadId指定为本程序的ThreadID,这个Hook就不能截获程序以外的消息,怎么办?
    而且MSDN上说,这个参数指定为0的话,这个Hook和所有运行的线程关联
    你有成功的例子吗?给我发一个,[email protected]
      

  2.   

    1.WH_KEYBOARD_LL=13
    2.You can use WH_KEYBOARD instead of WH_KEYBOARD_LL if you wanna create a thread associated hook,but if you wanna create a global hook...
    3.WH_KEYBOARD_LL is a global hook,So your HookProc MUST IN A DLL.You can use  LoadLibary & GetProcAddress to retieve the HookProc address.