Bonjour,
Comment on fait unou son equivalent windows
Code : Sélectionner tout - Visualiser dans une fenêtre à part kill notepad.exeen c++ ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part taskkill /f /im notepad.exe
bav,
Bonjour,
Comment on fait unou son equivalent windows
Code : Sélectionner tout - Visualiser dans une fenêtre à part kill notepad.exeen c++ ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part taskkill /f /im notepad.exe
bav,
ou son equivalent windows
Code : Sélectionner tout - Visualiser dans une fenêtre à part system("kill notepad.exe");
Code : Sélectionner tout - Visualiser dans une fenêtre à part 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.
Mac LAK.
___________________________________________________
Ne prenez pas la vie trop au sérieux, de toutes façons, vous n'en sortirez pas vivant.
Sources et composants Delphi sur mon site, L'antre du Lak.
Pas de question technique par MP : posez-la dans un nouveau sujet, sur le forum adéquat.
Rejoignez-nous sur : ► Serveur de fichiers [NAS] ► Le Tableau de bord projets ► Le groupe de travail ICMO
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.
Mac LAK.
___________________________________________________
Ne prenez pas la vie trop au sérieux, de toutes façons, vous n'en sortirez pas vivant.
Sources et composants Delphi sur mon site, L'antre du Lak.
Pas de question technique par MP : posez-la dans un nouveau sujet, sur le forum adéquat.
Rejoignez-nous sur : ► Serveur de fichiers [NAS] ► Le Tableau de bord projets ► Le groupe de travail ICMO
Et c'est handle, pas handler.
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.
"Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
Apparently everyone. -- Raymond Chen.
Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
Partager