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
From the New Project dialog box, create a Visual Basic or Visual C# Windows Application.
Ö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.
Ändern Sie die folgenden Eigenschaften im Eigenschaftenfenster :
Steuerelement
-Eigenschaft
Wert
Button1
Name
ButtonStart
Text
Prozess starten
Button2
Name
ButtonStop
Text
Prozess beenden
Klicken Sie auf die Registerkarte KomponentenToolbox, und ziehen Sie eine Instanz der Komponente Process auf der Designeroberfläche.
Namen der Komponenten MyProcess.
Zum Starten des Notepad.exe-Prozesses
Im Eigenschaftenfenster für die Komponenteninstanz Process erweitern Sie die StartInfo -Eigenschaft, und legen Sie die FileName -Eigenschaft auf notepad.exe.
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();
Speichern Sie alle Dateien und dann erstellen Sie, und führen Sie die Anwendung.
Klicken Sie mehrmals auf die Schaltfläche Prozess starten. Sie sehen separate Instanzen von Editor für jedes klicken.
Sicherheitshinweis 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.
Schließen Sie die einzelnen Notepad-Anwendungen.
Schließen Sie die Anwendung Form1.
Alle aktuelle Instanzen des Notepad.exe-Prozesses zu schließen
Öffnen Sie den Code-Editor für Form1.
Doppelklicken Sie von Entwurfsansicht auf die beenden -Schaltfläche, auf die Prozedur ButtonStop_Click().
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(); } }
Speichern Sie alle Dateien und dann erstellen Sie, und führen Sie Ihre Anwendung.
Starten Sie mehrere Instanzen von Editor, indem der Prozess starten die Schaltfläche.
Durch Klicken auf die Schaltfläche Prozess beenden, sofort alle ausgeführte Instanzen von Editor zu schließen.
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
Öffnen Sie den Code-Editor für Form1.
Ä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(); } }
Speichern Sie alle Dateien und dann erstellen Sie, und führen Sie die Anwendung.
Starten Sie mehrere Instanzen von Editor, indem der Prozesse starten die Schaltfläche.
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.
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
Erstellen Sie ein neues Konsolenanwendungsprojekt.
Ö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); }
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