Exemplarische Vorgehensweise: Verwalten eines Windows-Prozesses

Dieser Dokumentation für die Vorschau nur ist und in späteren Versionen geändert. Leere Themen wurden als Platzhalter eingefügt.]

Die Verfahren in diesem Thema erläutert die einzelnen Schritte ein Prozesses erstellen, reagiert, wenn ein Prozess beendet und Beenden von Prozessen. Im ersten Abschnitt erstellen Sie eine Windows-Anwendung mit Button Steuerelemente zum Starten und Beenden eines Notepad-Prozesses. Sie werden starten unterschiedliche Instanzen von Notepad einzeln und beenden diese dann als Gruppe. Im zweiten Abschnitt erstellen Sie eine Konsolenanwendung, die auf dem Computer ausgeführten Prozesse auflistet.

Weitere Informationen zum Verwenden der Process -Komponente zur Interaktion mit Systemprozessen finden Sie unter Einführung in die Überwachung und Verwaltung von Windows-Prozessen.

Hinweis

Unterscheiden sich die Dialogfelder und Menübefehle Bildschirm möglicherweise von den je nach den aktiven Einstellungen oder der Edition in der Hilfe beschriebenen.Wählen Sie Einstellungen importieren und exportieren Extras, um Ihre Einstellungen zu ändern.Weitere Informationen finden Sie unter Arbeiten mit Einstellungen.

Zum Erstellen einer Anwendung

  1. From the New Project dialog box, create a Visual Basic or Visual C# Windows Application.

  2. Öffnen Sie mit dem Designer Form1 , klicken Sie auf die Windows Forms Registerkarte in der Toolbox , und fügen Sie dann auf das Formular zwei Schaltflächen.

  3. Ändern Sie die folgenden Eigenschaften im Eigenschaftenfenster :

    Steuerelement

    -Eigenschaft

    Wert

    Button1

    Name

    ButtonStart

     

    Text

    Prozess starten

    Button2

    Name

    ButtonStop

     

    Text

    Prozess beenden

  4. Klicken Sie auf die Registerkarte KomponentenToolbox, und ziehen Sie eine Instanz der Komponente Process auf der Designeroberfläche.

  5. Namen der Komponenten MyProcess.

Zum Starten des Notepad.exe-Prozesses

  1. Im Eigenschaftenfenster für die Komponenteninstanz Process erweitern Sie die StartInfo -Eigenschaft, und legen Sie die FileName -Eigenschaft auf notepad.exe.

  2. Doppelklicken Sie auf die Schaltfläche Start, um den Code-Editor zuzugreifen, und fügen Sie dem Ereignis ButtonStart_Click() folgenden Code hinzu:

    myProcess.Start
    
    myProcess.Start();
    
  3. Speichern Sie alle Dateien und dann erstellen Sie, und führen Sie die Anwendung.

  4. Klicken Sie mehrmals auf die Schaltfläche Prozess starten. Sie sehen separate Instanzen von Editor für jedes klicken.

    SicherheitshinweisSicherheitshinweis

    Wenn Sie in einem teilweise vertrauenswürdigen Kontext ausführen, kann der Vorgang aufgrund unzureichender Berechtigungen eine SecurityException Ausnahme auslösen.Weitere Informationen finden Sie unter Code Access Security Basics.

  5. Schließen Sie die einzelnen Notepad-Anwendungen.

  6. Schließen Sie die Anwendung Form1.

Alle aktuelle Instanzen des Notepad.exe-Prozesses zu schließen

  1. Öffnen Sie den Code-Editor für Form1.

  2. Doppelklicken Sie von Entwurfsansicht auf die beenden -Schaltfläche, auf die Prozedur ButtonStop_Click().

  3. Fügen Sie folgenden Code, aktuellen Instanzen von Notepad zu schließen.

                                Private
                                Sub ButtonStop_Click() Handles ButtonStop.Click
       Dim myProcesses() As Process
       Dim instance As Process
       myProcesses = Process.GetProcessesByName("Notepad")
       ForEach instance In myProcesses
          instance.CloseMainWindow()
          instance.Close()
       NextEndSub
    
    private void ButtonStop_Click(object sender, System.EventArgs e)
    {
       System.Diagnostics.Process[] myProcesses;
       myProcesses = 
          System.Diagnostics.Process.GetProcessesByName("Notepad");
       foreach (System.Diagnostics.Process instance in myProcesses)
       {
          instance.CloseMainWindow();
          instance.Close();
       }
    }
    
  4. Speichern Sie alle Dateien und dann erstellen Sie, und führen Sie Ihre Anwendung.

  5. Starten Sie mehrere Instanzen von Editor, indem der Prozess starten die Schaltfläche.

  6. Durch Klicken auf die Schaltfläche Prozess beenden, sofort alle ausgeführte Instanzen von Editor zu schließen.

  7. Schließen Sie die Anwendung Form1.

In der nächsten Prozedur wird der Code gesperrt, letzte bis der Prozess abgeschlossen ist.

So konfigurieren Sie die Komponente warten, bis der Editor-Prozess ausgeführt wird abgeschlossen

  1. Öffnen Sie den Code-Editor für Form1.

  2. Ändern Sie den Code, indem Sie eine Codezeile damit eine Pause vor dem Schließen jedes Fenster hinzufügen.

                                Private
                                Sub ButtonStop_Click() Handles ButtonStop.Click
       Dim myProcesses() As Process
       Dim instance As Process
       myProcesses = Process.GetProcessesByName("Notepad")
       ForEach instance In myProcesses
          instance.CloseMainWindow()
          instance.WaitForExit(3000)
          instance.Close()
       NextEndSub
    
    private void ButtonStop_Click(object sender, System.EventArgs e)
    {
       System.Diagnostics.Process[] myProcesses;
       myProcesses = 
          System.Diagnostics.Process.GetProcessesByName("Notepad");
       foreach (System.Diagnostics.Process instance in myProcesses)
       {
          instance.CloseMainWindow();
          instance.WaitForExit(3000);
          instance.Close();
       }
    }
    
  3. Speichern Sie alle Dateien und dann erstellen Sie, und führen Sie die Anwendung.

  4. Starten Sie mehrere Instanzen von Editor, indem der Prozesse starten die Schaltfläche.

  5. Click the Stop Processesbutton to close the processes as before.

    Beachten Sie, dass die Anwendung jetzt 3 Sekunden für jeden Prozess beenden, bevor Sie schließen die nächste Instanz des Prozesses wartet.

  6. Schließen Sie die Anwendung Form1.

In diesem Teil der exemplarischen Vorgehensweise erstellen Sie eine neue Konsolenanwendung, die abgerufen werden und Liste der Prozesse auf dem lokalen Computer.

Zum Auflisten der Prozesse auf dem computer

  1. Erstellen Sie ein neues Konsolenanwendungsprojekt.

  2. Öffnen Sie den Code-Editor und ändern Sie die Main-Methode zum Auflisten der Prozesse auf dem Computer:

                                Sub Main()
       Dim processes() As Process
       Dim instance As Process
       processes = Process.GetProcesses
       ForEach instance In processes
          Console.WriteLine(instance.ProcessName)
       Next
       System.Threading.Thread.Sleep(5000)
    EndSub
    
    static void Main()
    {
       System.Diagnostics.Process[] processes;
       processes = System.Diagnostics.Process.GetProcesses();
       foreach (System.Diagnostics.Process instance in processes)
       {
          Console.WriteLine(instance.ProcessName);
       }
       System.Threading.Thread.Sleep(5000);
    }
    
  3. Speichern Sie alle Dateien und dann erstellen Sie, und führen Sie Ihre Anwendung.

    Die Anwendung öffnet ein Konsolenfenster mit einer Liste aller zurzeit auf dem Computer ausgeführten Prozesse. Sleep aufrufen wird die Konsole für 5 Sekunden vor dem Schließen angehalten.

    Hinweis

    Möglicherweise Ausnahmen in diesen beiden Prozeduren Wenn Sie GetProcesses oder GetProcessesByName und eine der zurückgegebenen Prozesse beendet, aufrufen bevor Sie den nächsten Anruf.In diesem Fall erhalten Sie die Ausnahme, die besagt, dass der Prozess nicht vorhanden ist.

Siehe auch

Aufgaben

SO WIRD'S GEMACHT: Geben Sie Prozesse

SO WIRD'S GEMACHT: Beenden von Prozessen

Weitere Ressourcen

Verwalten von Prozessen