Se la finestra è in primo piano il programma sta girando in foreground, altrimenti gira in background.
Un programma in background ha quasi tutte le caratteristiche di uno in foreground, a parte il fatto di non essere collegato al canale di input, quindi si blocca appena effettua una chiamata a funzione bloccante.
Quello che mi chiedo è: perché vuoi utilizzare un programma senza vedere quello che fa?
Se tu hai un gioco aperto ed il tuo pogramma ti fa una domanda, che senso ha che tu risponda senza vederla?
Se non c'è bisogno che l'utente del programma sappia cosa succede mentre viene eseguito, semplicemente elimina la getch.
Ciao!