1- Supongo que algo mas "trabajado" incluiría cualquier técnica de inter-comunicacion de procesos o IPC por sus siglas en ingles (Shared Memory, Named Pipes, File Mapping, Mailslot, Remote Procedure Calls, etc), a no ser que necesites específicamente una técnica de trabajo con ventanas y simulacion de clicks y/o pulsaciones de teclado
2- Tambien pudieras echarle un ojo a las funciones PostMessage/SendMessage y/o SendInput (Aunque no estoy seguro si funcionan sin tener en cuenta el foco)
Aqui tienes alguna lectura recomendada
https://stackoverflow.com/questions/2113950/how-to-send-keystrokes-to-a-window
https://stackoverflow.com/questions/1220820/how-do-i-send-key-strokes-to-a-window-without-having-to-activate-it-using-window
https://stackoverflow.com/questions/8782648/how-to-send-keys-to-a-minimized-window-in-c
https://cboard.cprogramming.com/windows-programming/118217-sending-keystrokes-other-*non-focus*-application.html