Casi lo solucioné así pero no se si será la mejor solución:
Código PHP:
bool THiloDebugger::AtachProcessByNameWindow(char *wName,int &Error)
{
HWND HParent;
DWORD ProcessId;
DWORD ThreadId;
int retval=false;
HParent=FindWindow(NULL,wName);
if(HParent){
ThreadId=GetWindowThreadProcessId(HParent,&ProcessId);
if(ThreadId){
if(DebugActiveProcess(ProcessId)){
pi.dwThreadId=ThreadId;
pi.hProcess = OpenProcess( PROCESS_QUERY_INFORMATION | PROCESS_VM_READ | PROCESS_TERMINATE, FALSE, ProcessId);
pi.dwProcessId=ProcessId;
retval=true;
Error=0;
}else{
Error=-1;
}
}else{
Error=-2;
}
}else{
Error=-3;
}
return retval;
}
Con esto ya obtengo el Handle del proceso atacheado pero me sigue faltando el pi.hThread. ¿como puedo obtenerlo? No da error pero estoy haciendo un CloseHandle(NULL) porque es lo que pale al salir del depurado porque pi.hThread no la he inicializado con el valor y vale NULL.