有程序A和程序B以及DLL文件C程序A Hook注入到程序B
  hwd:=strtoint(程序B的hwnd);
  dwThreadId:=GetWindowThreadProcessId(hwd,@PID );
  HookOn(dwthreadid);             //此处执行完毕后,程序A以及程序B内都有DLL文件C了procedure HookOn(dwThreadId:Dword) stdcall;
begin                     
   Assert(MessageHook=0);
   MessageHook:=SetWindowsHookEx(WH_GetMessage, GetMsgProc, HInstance,dwThreadId );
   hook[0] := THookClass.Create(True ,@ReadProcessMemory,@NewReadProcessMemory);   //Hook此api
end;在THookClass.Create中使用以下命令获得目标程序B的修改权限  //但是GetCurrentProcessId一直都是获得程序A的进程,没有程序B的
hProcess := OpenProcess(PROCESS_ALL_ACCESS,FALSE,GetCurrentProcessId);全部执行完毕后,没有拦截到程序B的任何信息,程序A的倒是给拦下来了
HookOn给的是程序B的进程,但是怎么就全跑去拦截程序A了。。我弄了一天了还没搞清楚只好向高手求救了