Comment killer un process des qu il aparait

Résolu
aeon3k Messages postés 1 Date d'inscription mardi 15 mai 2007 Statut Membre Dernière intervention 29 juin 2007 - 29 juin 2007 à 11:54
TeBeCo Messages postés 467 Date d'inscription lundi 24 juin 2002 Statut Membre Dernière intervention 9 mars 2011 - 30 juin 2007 à 18:44
Bonjour,

j ai reussi en C# a lancer un process qui kill un autre process qui tourne en permanance sur mon pc.
Le probleme c est que ledit process se relance apres un certain temps x...

Je voudrai donc que mon process puisse "ecouter" et killer l autre process des qu il aparait
ou
killer le process toute les x minutes par exemple.

Pourriez vous m aider ?
merci d avance

Pierrick Triplet

2 réponses

TeBeCo Messages postés 467 Date d'inscription lundi 24 juin 2002 Statut Membre Dernière intervention 9 mars 2011
29 juin 2007 à 14:02
fait le sur un thread de background avec la priorité : Lowest

imports System.threading

au chargement :
Thread thKill = new Thread(addressof KillProcess);
thKill.IsBackground = True;
thKill.priority = Priority.Lowest;
thKill.name = "KillProcess";
thKill.Start();

private void KillProcess() {

    while (true) {
      
       Process prc = new Process(...)
       [Reste du code pour reperer le proccess en question et le kill cf la doc et le reste du forum]
      
       application.Doevents()
       thread.CurrentThread.Sleep(1000);
    }
}

TeBeCo
3
TeBeCo Messages postés 467 Date d'inscription lundi 24 juin 2002 Statut Membre Dernière intervention 9 mars 2011
30 juin 2007 à 18:44
d'ailleur mon code est un peu moche je viens de m'en rendre compte il faut eviter de faire un "new" a chaque boucle dans le "while()" sinon la memoire va morfler
il faut instancier le minimum possible et si possible uniquement si le thread existe initialiser les variable avant le demarrage de la boucle mais tjs dans le "KillProcess()"

et au moment tu dechargement du programme penser a faire un :
thKill.Abort();
et le detruire
pour cela il faudra rajouter un :
Try {
code qui boucle
}
Catch(ThreadAbortedException) {
//ne rien faire
}

j'ai un doute sur la syntaxe et le nom de l'exception mais elle sera belle et bien levé il faut donc la gérée (en ne faisant rien) mais au moins en la capturant sinon le prog plante

TeBeCo
0
Rejoignez-nous