Comment : arrêter des processus

Mise à jour : novembre 2007

Vous avez le choix entre deux méthodes pour arrêter un processus avec un composant Process. La méthode utilisée dépend du type de processus que vous avez l'intention d'arrêter :

  • Si le processus possède une interface utilisateur graphique, appelez la méthode CloseMainWindow. Cette méthode envoie une demande de fermeture à la fenêtre principale du processus et se comporte de la même façon que la sélection de la commande Fermer dans l'interface utilisateur. Le recours à cette méthode offre au programme cible la possibilité de demander à l'utilisateur s'il souhaite enregistrer des données non enregistrées pendant l'opération de nettoyage.

  • Si le processus ne dispose pas d'une interface utilisateur, appelez la méthode Kill.

    Attention :

    L'appel de la méthode Kill arrête immédiatement le processus sans demander si les données modifiées doivent être enregistrées. Toutes les données non enregistrées seront perdues.

Si vous souhaitez que le composant soit averti lorsque le système d'exploitation arrête un processus, affectez à la propriété EnableRaisingEvents la valeur true. La propriété EnableRaisingEvents est utilisée dans le traitement asynchrone pour avertir votre application de l'arrêt d'un processus.

Pour arrêter un processus

  1. Appelez la méthode GetProcessesByName pour récupérer le processus que vous souhaitez arrêter.

    Pour plus d'informations, consultez Comment : lier à des processus existants.

  2. Appelez l'une des méthodes suivantes :

    • Si le processus possède une interface utilisateur, appelez la méthode CloseMainWindow.

    • Si le processus n'a pas de fenêtre, appelez la méthode Kill.

    L'exemple suivant montre comment appeler la méthode CloseMainWindow pour fermer toutes les instances du Bloc-notes en cours d'exécution sur un ordinateur local :

    Dim myProcesses() As Process
    Dim myProcess As Process
    ' Returns array containing all instances of "Notepad".
    myProcesses = Process.GetProcessesByName("Notepad")
    For Each myProcess In myProcesses
        myProcess.CloseMainWindow()
    Next
    
         Process[] myProcesses;
            // Returns array containing all instances of Notepad.
            myProcesses = Process.GetProcessesByName("Notepad");
            foreach (Process myProcess in myProcesses)
            {
                myProcess.CloseMainWindow();
            }
    

Voir aussi

Tâches

Comment : lier à des processus existants

Concepts

Introduction à la surveillance et à la gestion des processus Windows

Autres ressources

Gestion des processus