Processus à killer par wm_close

Processus à killer par wm_close - Delphi/Pascal - Programmation

Marsh Posté le 27-08-2006 à 15:34:34    

Ca fait un moment que je gargouille à chercher de la doc sur la façon de fermer une application depuis un prog.  
 
Je voudrais utiliser l'instruction WM_CLOSE .
 
Objectif : arrêter un processus que je connais par le nom, mais pas par son handle. Et comme tout est en anglais sur msdn-microsoft laboratoire etc...
 
Merci :jap:

Reply

Marsh Posté le 27-08-2006 à 15:34:34   

Reply

Marsh Posté le 28-08-2006 à 07:20:16    

WM_CLOSE n'est pas une instruction, mais un message, que l'on envoie à l'application par SendMessage()


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 28-08-2006 à 08:51:23    

Harkonnen a écrit :

WM_CLOSE n'est pas une instruction, mais un message, que l'on envoie à l'application par SendMessage()


Voilà. Et pr l'envoyer par SendMessage(), il me faut désigner l'appli par son handle. Donc, je dois trouver son handle. Il faut procéder en plusieurs étapes. Au moins ces deux-là. Récupérer le handle d'une appli connue par son nom ? C'est GetHandle... qqch ?

Reply

Marsh Posté le 28-08-2006 à 08:57:01    

Tu peux utiliser la fonction FindWindow() pour ça, ça te renvoie le handle de la fenêtre que tu spécifies en paramètre


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 28-08-2006 à 09:05:01    

Harkonnen a écrit :

Tu peux utiliser la fonction FindWindow() pour ça, ça te renvoie le handle de la fenêtre que tu spécifies en paramètre


Au fait... Ca marche même si l'application n'a pas de fenêtre ? Je vise certains services.

Reply

Marsh Posté le 28-08-2006 à 09:23:43    

Ton service a une fenêtre cachée ou pas ? Ca peut arriver des fois. Tu peux le voir avec des outils comme Winspector ou Spy++. Dans ce cas, tu peux lui envoyer un WM_CLOSE.
Dans le cas contraire, tu peux utiliser TerminateProcess(), mais c'est une méthode un peu crade
 
edit: il me semble qu'il y a une fonction dédiée pour terminer un service, faudrait vérifier sur la MSDN


Message édité par Harkonnen le 28-08-2006 à 09:29:22

---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed