Processus à killer par wm_close - Delphi/Pascal - Programmation
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()
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 ?
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
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.
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
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