'DLL内存共享'
每个进程都会产生你的HOOK
DLL的实例,但各个实例的内存是不能互访的,
所以你要研究DLL内存共享技巧

解决方案 »

  1.   

    你用的是LocalHooks,要用RemoteHooK(GlobalHooks)
      

  2.   

    使用文件影射来实现数据共享,当你在别的窗口进行键盘操作时,钩子函数对数据集进行修改时,进行键盘操作的进程会在自己的地址空间中产生DLL中的数据副本,不能反应到要捕捉键盘事件的进程中,因此必需实现内存的共享,可以用文件映射来实现。对于你上面的程序段应该将hNextHookProc := SetWindowsHookEx(WH_KEYBOARD,
        KeyboardHookHandler,
        HInstance,
        0);
    产生的hNextHookProc也放入共享内存中。
      

  3.   

    请问: youfly(无名) 怎么才能把hNextHookProc 也放入共享内存中。 
      

  4.   

    我找到个控件,解决了
    不过还是要给分,csdn太不健全了,