Bonjour,
Comment on fait unou son equivalent windowsCode:kill notepad.exe
en c++ ?Code:taskkill /f /im notepad.exe
bav,
Version imprimable
Bonjour,
Comment on fait unou son equivalent windowsCode:kill notepad.exe
en c++ ?Code:taskkill /f /im notepad.exe
bav,
ou son equivalent windowsCode:system("kill notepad.exe");
Code:system("taskkill /f /im notepad.exe");
Mouais... Appeler la fonction system pour ça, c'est assez crade quand même.
Sous Windows, tu passeras par la fonction TerminateProcess de préférence. Sous Linux, tu enverras un signal SIGKILL au processus en question, via la fonction kill.
De toutes façons, que ce soit via system ou via l'API, ce n'est pas portable et il te faudra encadrer le code correspondant par des directives de compilation conditionnelle.
Hello Mac LAK,
en fait j'ai fait une petite recherche sur TerminateProcess, et cela exige de creer un handler, ca veut donc que je ne peux pas terminer un processus que je n'ai pas creee ?
Je voudrais lors de l'execution de mon programme tuer des processus de mon choix.
bat,
Si, tu peux. Il faut utiliser OpenProcess pour obtenir un tel handle, tout en conservant à l'esprit qu'il est POSSIBLE de ne pas avoir le droit de terminer un processus donné (même si c'est plus que rare, faut avouer).
Du moment que tu peux trouver le PID d'un processus, tu pourras obtenir un handle dessus avec OpenProcess (et réciproquement, avec GetProcessId).
Ensuite, pour trouver "ton" processus dans la liste des processus en cours, il faut parcourir la liste interne de Windows à ce sujet. Tu peux par exemple regarder la FAQ VC++ à ce sujet pour voir comment on s'y prend. Ou utiliser EnumWindows, suivant le cas.
Et c'est handle, pas handler.