Pour ne pas avoir d´interface graphique, tu peut sois utiliser une aplication win32 (celle avec une fonction WinMain) et n´appeler aucune fonction d´entrée sortie et ne pas créer de fenêtre (il faut que le sous système soit régler sur "Windows" dans les paramètrer du linker de ton appli si tu es sous visual studio).
Ou alors tu peut cacher la fenêtre du terminal avec un appel du type
HideWindow(GetConsoleWindow(NULL))
Je ne garantie aucun des deux appels, mais ça doit ressembler à ça.
MAis ce n´est pas terrible car tu ne peut lus interargir avec le systèmecar tu n´a pas de boucle demessage.
Il vaut mieux créer une fenêtre de type Message Handler (c´est une fenêtre sans interface qui ne fait que recevoir des messages). La MSDN détaille pas mal de processus de création de fenêtre (ainsiq que l´exemple standard de VC++ quand il crée un nouveau projet, il y a juste une constante à modifier.
pareil i tu as besoin de plus de détail, je peut chercher dans des vieux projets où j´utilisais ça pour te retrouver la bonne syntaxe.
Pour diminuer ta priorité (mais ce n´est pas très utile si tu as une boucle de message) tu as les fonction
SetProcessPriority et SetThreadPriority (un truc comme ça) avec encore des constantes à allez chercher dans la MSDN et GetCurrentProcessId ou quelque chose comme ça pour connaitre le nom de ton process.
bon, tout ça n´est pas très précis, mais ce sont des pistes, et si la MSDN ne répond pas à tes questions, demande des précision, et j´essayerais de t´en trouver.