Za početak kao što bi rekao naš nekadašnji Ministar inostranih poslova, you can't mix grandmothers and frogs ;)
FindWindowEx za prvi parametar očekuje HWND parent prozora ne Handle procesa u kome se prozor nalazi.
Do handla željenog prozora možeš doći iz nekoliko koraka:
1) Treba dobiti HWND parent prozora, ako je to top-level window (ili neki njegov predak jeste) onda se to lako radi pomoću EnumWindows i upoređivanjem rezultata funkcije GetWindowThreadProcessId i procesa koji ti već imaš. Ako nije TopLevel onda se mora ići okolnim putem, prvo se nađu svi thredovi datog procesa a onda se gledaju svi prozori tih threadova preko EnumThreadWindows dok se ne dođe do parenta.
2) Pozoveš EnumChildWindows za dobijeni HWND dok ne pronađeš željeni handle.
Možda postoji i lakši način, zavisno od organizacije (hijerarhije) prozora u tom programu, ali bez detaljnijih informacija ne može se reći. Primere upotrebe svih gore navedenih funkcija možeš naći u JCL biblioteci ili MSNDu.