Gewusst wie: Anhalten von Prozessen

Aktualisiert: November 2007

Es gibt zwei Methoden, einen Prozess mit einer Process-Komponente zu beenden. Die zu verwendende Methode hängt vom Typ des Prozesses ab, der beendet werden soll:

  • Wenn der Prozess über eine grafische Benutzeroberfläche verfügt, rufen Sie die CloseMainWindow-Methode auf. Diese Methode sendet eine Anforderung zum Schließen an das Hauptfenster des Prozesses. Dies entspricht dem Auswählen des Befehls Schließen auf der Benutzeroberfläche. Bei Verwendung dieser Methode wird der Benutzer vom Zielprogramm während des Bereinigungsvorgangs aufgefordert, alle nicht gespeicherten Daten zu speichern.

  • Rufen Sie die Kill-Methode auf, wenn der Prozess nicht über eine Benutzeroberfläche verfügt.

    Vorsicht:

    Mit der Kill-Methode wird der Prozess sofort beendet. Der Benutzer wird nicht aufgefordert, geänderte Daten zu speichern. Alle nicht gespeicherten Daten gehen verloren.

Wenn die Komponente benachrichtigt werden soll, wenn das Betriebssystem einen Prozess beendet hat, müssen Sie für die EnableRaisingEvents-Eigenschaft true festlegen. Die EnableRaisingEvents-Eigenschaft wird bei asynchroner Verarbeitung verwendet, um die Anwendung über die Beendigung eines Prozesses zu benachrichtigen.

So beenden Sie einen Prozess

  1. Rufen Sie die GetProcessesByName-Methode auf, um den zu beendenden Prozess abzurufen.

    Weitere Informationen hierzu finden Sie unter Gewusst wie: Binden an vorhandene Prozesse.

  2. Rufen Sie eine der folgenden Methoden auf:

    • Wenn der Prozess über eine Benutzeroberfläche verfügt, rufen Sie die CloseMainWindow-Methode auf.

    • Bei einem fensterlosen Prozess rufen Sie die Kill-Methode auf.

    Im folgenden Beispiel wird die CloseMainWindow-Methode aufgerufen, um alle Instanzen des Editors zu schließen, die derzeit auf dem lokalen Computer ausgeführt werden:

    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();
            }
    

Siehe auch

Aufgaben

Gewusst wie: Binden an vorhandene Prozesse

Konzepte

Einführung in die Überwachung und Verwaltung von Windows-Prozessen

Weitere Ressourcen

Verwalten von Prozessen