Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1186 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  [API] kkun sait fermer une appli à partir d'un prog ?...

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[API] kkun sait fermer une appli à partir d'un prog ?...

n°143110
mikegyver
Le H de Hawaï, ça sert à rien
Posté le 23-05-2002 à 11:40:11  profilanswer
 

Voilà, je cherche le moyen de fermer une application à partir d'un prog.  
J'ai trouvé les fonctions de l'API :  
CloseHandle, CloseWindow, DestroyWindow, mais aucune d'elles ne ferme l'appli dont le handle est passé en paramètre...  
 
Il n'y a que CloseWindow qui réagit en minimisant l'appli mais elle tourne toujours dans la barre des tâches...
 
Une soluce ???
 
Merci !

mood
Publicité
Posté le 23-05-2002 à 11:40:11  profilanswer
 

n°143134
try58
Posté le 23-05-2002 à 12:05:26  profilanswer
 

Si tu recupere le pid du process de l'appli, tu peux faire un TerminateProcess dessus. Par contre je ne sais pas si c'est propre

n°143154
Rawhead re​x
Argghhhhh
Posté le 23-05-2002 à 12:36:22  profilanswer
 

Il doit y avoir des flags pour la terminaison du process, donc tout depend de ce que tu recherches.


---------------
Il vaut mieux en rire que d'en pleurer !
n°143323
mikegyver
Le H de Hawaï, ça sert à rien
Posté le 23-05-2002 à 15:34:21  profilanswer
 

try58 a écrit a écrit :

Si tu recupere le pid du process de l'appli, tu peux faire un TerminateProcess dessus. Par contre je ne sais pas si c'est propre  




 
Ben ça fait pas grand chose... je vais finir par me demander si C possible à la fin !!!
 
Au fait, petite vérification, le pid, c'est le Handle de la fenêtre que je veux fermer, C bien ça ?
 
en fait voilà le code:
        HWND hWnd = ::FindWindow(NULL, "MyAppli" );
        if(hWnd) TerminateProcess(hWnd, 0);
 
et ça marche pô...

n°143340
mikegyver
Le H de Hawaï, ça sert à rien
Posté le 23-05-2002 à 15:42:44  profilanswer
 

Rawhead rex a écrit a écrit :

Il doit y avoir des flags pour la terminaison du process, donc tout depend de ce que tu recherches.  




 
En fait voilà le pb en gros :
 
J'ai réalisé un petit prog il y a qques années et aujourd'hui je fais la version 2.0 de ce petit prog. J'ai gravé ce logiciel sur pas mal de mes CD et il est lancé par un autorun. Le pb est que j'avais pas pensé qu'un jour je ferais une 2è version, et ce petit prog, une fois lancé, ne cherche pas à lancer un exécutable sur le DD à la recherche d'une mise à jour...
 
J'ai donc pensé que ma nouvelle version devrait tourner en tâche de fond et dès qu'elle détecterait que l'ancienne version est lancée, elle la fermerait et se lancerait à sa place...
 
Oui bon, C un peu bourrin mais G rien trouvé d'autre...
 
Donc voilà à quoi servirait exactement cette fonction pour terminer une appli, j'espère avoir donné suffisamment d'explications...
 
Alors, des idées ?  :hello:  
 
Merci !


---------------
...m'enfin !!!
n°143383
El_gringo
Posté le 23-05-2002 à 16:23:03  profilanswer
 

mikegyver a écrit a écrit :

 
 
Ben ça fait pas grand chose... je vais finir par me demander si C possible à la fin !!!
 
Au fait, petite vérification, le pid, c'est le Handle de la fenêtre que je veux fermer, C bien ça ?
 
en fait voilà le code:
        HWND hWnd = ::FindWindow(NULL, "MyAppli" );
        if(hWnd) TerminateProcess(hWnd, 0);
 
et ça marche pô...  




 
Le PID, c'est l'identifiant du process de ton appli.
Tu surement le retrouver avec EnumProcesses ('faut voir...)
Une fois que t'as le PID, tu peux faire un TerminateProcess.
C pas propre du tout, un TerminateProcess, parce que ça termine le process brutalement. ça libère pas forcément la mémoire j'pense. ça serait mieux de terminer ton appli en envoyant le message WM_CLOSE au handle de la fenêtre principale de ton appli. T'as essayé ça !?

n°143393
try58
Posté le 23-05-2002 à 16:38:08  profilanswer
 

En fait, je viens de regarder dans la msdn et apparement TerminateProcess prend un handle comme argument. Donc ce n'est pas la peine de chercher le pid. (Moi aussi je me suis fais avoir).

n°143398
try58
Posté le 23-05-2002 à 16:40:40  profilanswer
 

el_gringo a écrit a écrit :

 
 
ça serait mieux de terminer ton appli en envoyant le message WM_CLOSE au handle de la fenêtre principale de ton appli. T'as essayé ça !?  




Je pense que ce n'est pas l'appli de son programme qu'il veut fermer mais une autre externe. Enfin je crois!!

n°143518
mikegyver
Le H de Hawaï, ça sert à rien
Posté le 23-05-2002 à 18:30:22  profilanswer
 

try58 a écrit a écrit :

 
Je pense que ce n'est pas l'appli de son programme qu'il veut fermer mais une autre externe. Enfin je crois!!  




 
Exact, et je pense que c'est justement ce el_gringo voulait dire parce CA MAAAAAAAAAAAAAAAAAAAARCHE !!!  :D  :D  :D  :D  :D  :D  
 
voici le code :
        HWND hWnd = ::FindWindow(NULL, "Game_up" );
        if(hWnd) SendMessage(hWnd, WM_CLOSE, 0, 0);
 
depuis le temps que le la cherchais cette fonction...
 
Merci à tous !


---------------
...m'enfin !!!
n°143700
El_gringo
Posté le 24-05-2002 à 09:04:33  profilanswer
 

try58 a écrit a écrit :

 
Je pense que ce n'est pas l'appli de son programme qu'il veut fermer mais une autre externe. Enfin je crois!!  




 
J'vois pas le rapport !
Une fenêtre peut recevoir des messages depuis n'importe quelle appli, du moment que l'appli dispose du Handle de la fenêtre.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  [API] kkun sait fermer une appli à partir d'un prog ?...

 

Sujets relatifs
visual basic : comment mieux gérer les dates dans mon prog ???[VB sous access] Effacer un fichier a partir du code VB
[ prog systeme Unix inside !] help !! mémoire partagée, je galère ![C] ouvrir un fichier en données pour un prog...
[C++] avoir le nom d'un codec à partir du FourCC ?[vb6]mettre une musique dans mon prog !
[delphi] Les uses en delphi ? est ce que le prog pese plus ?[HS] Comment polluer un autre forum de prog :))
Compatibilite CLX Borland et API Windows de base[prog internet] champs texte + checbox
Plus de sujets relatifs à : [API] kkun sait fermer une appli à partir d'un prog ?...


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR