Per un approccio del genere ti basta una shellexecute con SW_HIDE, poi con findwindow cerchi l'handle e la setti con Setparent, per poi dare la showwindow, praticamente una decina di righe tutto compreso (in sostanza hai "reinventato" funzioni già nella shellapi, basta che la USEs).
A parte questo, e a parte il fatto che non mi risulta essere supportato la cosa che vuoi fare (se non per oggetti activex importati, ovvero nella fattispecie come twebbrowser e roba del genere), ma posso sempre sbagliare, il punto è come indentificare i vari programmi.
- per inciso non sono così sicuro sulla sincronicità dell'avvio del programma, così a "occhio" è da verificare fine inciso -
La primissima cosa che mi viene in mente è (a parte usare il relativo programmello a supporto di autoit che mostra praticamente tutto di una finestra) enumerare i relativi PID per differenziarli.
Questo però funziona direi con chrome in versione standard (tanti PID quante finestre, se non diversamente impostato), mentre per firefox no (un unico PID).
Non mi è quindi chiarissimissimo come ti aspetti di poter visualizzare un singolo processo in più panel di programmi diversi (ammesso che funzioni senza effetti collaterali).
Potresti provare qualcosa tipo questo
http://kb.mozillazine.org/Opening_a_...nother_profile