Disparition de la fenêtre des tâches

Pour faire disparaître la fenêtre console ou pas, un ShowWindow(..., SW_HIDE) suffit. D'une part, faut-il trouver le ... pour une application console et d'autre part, elle reste dans la liste des applications.

Le 1er cas se traite en retrouvant le handle de fenêtre de l'application console:


  SetConsoleTitle("SmsCenter");    (1)
  HWND console=FindWindow("tty","SmsCenter");     (2)   
  ShowWindow(console,SW_HIDE);

(1) On positionne le titre de la fenêtre console pour être sur de la retrouver. On pourrait même ajouter une chaine aléatoire pour être sur d'être unique.

(2) On recherche la fenêtre. Il faut savoir que "tty" mais une fois connu cela va mieux.

Le deuxième cas, je l'ai découvert dans les news en cherchant comment faire disparaître l'application console simplement. J'ai trouvé comment déclarer l'appli sous forme de service à la façon Windows NT même sous Win95 !


  #define RSP_SIMPLE_SERVICE 1

  DWORD (WINAPI *fpRsp)( DWORD , DWORD );  (1)
  (FARPROC&)fpRsp = GetProcAddress(GetModuleHandle("KERNEL32"), "RegisterServiceProcess");    (2)  
  (*fpRsp)(GetCurrentProcessId(), RSP_SIMPLE_SERVICE); (3)  

(1) Déclaration d'une variable fonction pour retrouver l'API qui va bien

(2) On recherche l'API RegisterServiceProcess qui permet la déclaration en service et du coup la disparition

(3) Appel de l'API sur l'application courante, c'est à dire elle même

Il n'y a plus personne à bord ! Plus d'icones, plus de tâche...


Page mise à jour le 13 fév. 00
© Osele 2000