Bonjour ,
Dans mon code si certaines conditions sont réunies je dois killer l'application word.exe mais je en vois pas du tout comment faire.
Merci pour votre aide !
Bonjour ,
Dans mon code si certaines conditions sont réunies je dois killer l'application word.exe mais je en vois pas du tout comment faire.
Merci pour votre aide !
Tuer une application n'est jamais une bonne idée et ne peut se faire en C++ standard. Sous Windows cela peut se faire avec la fonction TerminateProcess et sous Linux avec la fonction kill.
Malheureusmeent je ne commais pas lme PID du processus à tuer.
Est-ce que la commande ci-dessous ne pourrait pas marcher ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part system("%systemroot%\\system32\\tskill.exe word");
Si, ça marche. Tu peux même juste écrire "tskill word" (ou word.exe est le processus qu'on veut tuer). Le problème c'est que s'il y a plusieurs instances de l'application lancées, elles seront toutes arrêtées. Si tu veux arrêter juste une seule instance, il faut avoir le pid du processus associé. Le pid est le seul identificateur unique d'un processus. Il y a dans la FAQ un exemple de code qui énumère tous les processus, ce qui permet d'obtenir entre les noms et les pids des différents processus en cours ...
Je tiens à signaler que Word.exe est un serveur de composants COM out-of-process des plus utilisés et qu'à ce titre, l'assassiner pourra enclencher très probablement des disfonctionnements graves sur l'ensemble des processus tournant sur le système.
Tu parles de winword.exe (MS Word) ? Bien sûr, mais c'est son choix. On l'a déjà assez averti comme ça.
tu peux avoir le PID d'une application dont tu connais le nom avec le code suivant:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 HWND windowHandle = FindWindowW(NULL, windowName.c_str()); DWORD* processID = new DWORD; GetWindowThreadProcessId(windowHandle, processID);
Partager