Don't. Processes are isolated and should remain isolated. It's possible to achieve on the base of Windows messages, but this approach is too Windows-specific, contradicts to more important principles of OS architecture is is generally so bad due to other reasons, so I don't even want to discuss them.
If you really need communication between different processes, you should use… well, communications, IPC, without touching any windows of a remote process. You send a request to another process to open a new window, in an abstract form, and the other process does it. But even this approach look quite questionable. You did not provide any justification. Why not have the applications united in one? Why not developing some plug-in architecture if you need such flexibility, still in one process? Why not using multithreading instead of two processes? And so on…
If you answer all this questions, they may reveal that your current architecture is the worst of all. Well… probably.
Now, if you still need the communications, it can be designed on many different levels, from sockets or named pipes to classic remoting to WCF. Please see my past answers:
Communication b/w two Windows applications on LAN.[
^],
how i can send byte[] to other pc[
^].
—SA