请问 VB能否实现 对指定窗口进行键盘HOOK   意思就是当在某个指定窗口中按下KEY 然后捕获到他的键盘消息  不需要全局的 就只要在指定地方捕获  请问有没有办法  我下了个王国容先生的全局HOOK的DLL  VB调用  但是不知道能不能改成针对指定窗口的

解决方案 »

  1.   

    Public Declare Function SetWindowsHookEx Lib "user32" Alias "SetWindowsHookExA" (ByVal idHook As Long, ByVal lpfn As Long, ByVal hmod As Long, ByVal dwThreadId As Long) As Long
    'SetWindowsHookEx(int idHook, HOOKPROC lpfn, HINSTANCE hMod,DWORD dwThreadId  );
    '第一个参数:指定钩子的类型,有WH_MOUSE、WH_KEYBOARD等十多种(具体参见MSDN)
    '第二个参数: 标识钩子函数的入口地址
    '第三个参数:钩子函数所在模块的句柄;
    '第四个参数:钩子相关函数的ID用以指定想让钩子去钩哪个线程,为0时则拦截整个系统的消息。
    '
    '另外需要注意的是为了捕获所有事件,挂钩函数应该放在动态链接库DLL中。SetWindowsHookEx id,lpfn,App.hInstance,App.ThreadID
      

  2.   

    全局的代码贴出来看看
    不知道你用的是那个
    他里面有个lparma参数
    好像是有关程序句柄的