现在外部进程已经由 CreateProcess 创建成功,可以从 ProcessInfo 中得到刚刚启动好的进程信息。如何进一步拦截(记录)这个外部进程的窗口鼠标操作。我的想法是 SetWindowsHookEx 一个 WH_MOUSE 鼠标钩子,然后去拦截(记录)鼠标在这个新启动程序的窗口上的操作,我用 SetWindowsHookEx(WH_mouse, HookHandler, HInstance, 0);  //全局 的话,这样就是拦截全局鼠标消息了,我只想拦截我自己创建的进程窗口的鼠标消息,需要使用DLL注入吗?有过此类经验的朋友进来说说。

解决方案 »

  1.   

    把最后一个参数0改成该进程的PID
      

  2.   

    我早就试过了。SetWindowsHookEx 的最后一个参数是 dwThreadID,这个会变,只在目标程序的第一个窗口才有效。
      

  3.   

    需要使用DLL注入。
    SetWindowsHookEx最后一个参数就用ProcessInfo的dwThreadId呗。
    2楼说“只在目标程序的第一个窗口才有效”是什么意思?难道目标程序的其他窗口在另外的线程?
      

  4.   

    也可以不注入,作一个WM_MOUSE_LL HOOK,然后再来判断鼠标下的窗口是不是目标窗口就行了,这样就不用注入了。