我写了一个WH_CBT钩子,做成dll,名称是FilgerDll.dll,
bool SetFilter(BOOL bInstall ,DWORD dwThredID,char *Path)
{
..........
在下面这行设置断点,但是无法进入CBTProc中单步执行
   gHook=SetWindowsHookEx(WH_CBT,CBTProc,GetModuleHandle("FilterDll.dll"),dwThredID);
..........
}static LRESULT CALLBACK CBTProc(int nCode,WPARAM wParam, LPARAM lParam)
{
if(nCode==HCBT_CREATEWND)
{
.......
hWnd=(HWND)wParam;
::GetWindowText(hWnd,cap,31);
         ........
}
else return(CallNextHookEx(gHook, nCode, wParam, lParam));
}

解决方案 »

  1.   

    gHook=SetWindowsHookEx(WH_CBT,CBTProc,GetModuleHandle
    在这行下的断点?当然跟踪不进去喽。这是设置勾子又不是触发勾子,想要跟踪CBTProc的执行情况,你得在CBTProc内下断点,并触发这个勾子才可以。
      

  2.   

    我写了一个系统下WH_MOUSE钩子的例子,应该对你有所帮助,要的话留下mail
      

  3.   

    在函数CBTProc(int nCode,WPARAM wParam, LPARAM lParam)里面设置断点啊。