DllExport void WINAPI InstallLaunchEv(HWND hwnd)
{
Hook=(HHOOK)SetWindowsHookEx(WH_KEYBOARD,(HOOKPROC)LauncherHook,theApp.m_hInstance,0);
}DllExport void WINAPI UnInstallLaunchEv()
{
DllCanUnloadNow();
UnhookWindowsHookEx(Hook);
}LRESULT CALLBACK LauncherHook(int nCode,WPARAM wParam,LPARAM lParam)
{ LRESULT Result=CallNextHookEx(Hook,nCode,wParam,lParam); if(nCode==HC_ACTION)
{
TRACE("RepeatCount")
}
return Result;
}这样有为什么只能钩到我LOAD这个DLL的程序啊,当这个程序不是当前窗口的时候,就钩不到

解决方案 »

  1.   


    标准的用vs2008创建的 mfc dll,里面就有
      

  2.   

     Hook=(HHOOK)SetWindowsHookEx(WH_KEYBOARD,(HOOKPROC)LauncherHook,theApp.m_hInstance,0);
    ==================
    我看来看去也只对theApp.m_hInstance有点疑问
      

  3.   

    如果这样的话
    Hook=(HHOOK)SetWindowsHookEx(WH_KEYBOARD,(HOOKPROC)LauncherHook,GetModuleHandle(NULL),0);比如a程序里面使用了这个dll,安装了钩子,但也只能A程序是当前窗口才会有有信息在 output产生
    如果a程序不是当前窗口,就没有信息在output产生
      

  4.   

    http://download.csdn.net/source/1781587
    我的群号19206896
      

  5.   

    我知道那东西,我就是想知道为什么高级钩子,钩不到全局,但有人又说可以钩到....用底层钩子,是可以钩到全局的,不做成DLL也可以钩到,
    高级键盘钩子,我做成DLL也钩不到全局的,为什么呢
      

  6.   

    我知道那东西,我就是想知道为什么高级钩子,钩不到全局,但有人又说可以钩到....
    ====================
    可以钩到全局的。你改用Win32 DLL做一下试试
      

  7.   

    可以勾到全局的,你看看MSDN上对SetWindowsHookEx里的后两个参数的设置描述,好像勾全局和勾进程的参数不同。
      

  8.   

    win32 dll 我的vs 没有这个模板呢?只有mfc dll 和mfc smart device dllSetWindowsHookEx钩全局的话,第三个参数应该是 GetModuleHandle(NULL)
    底层钩子,就是这样安的