Gewusst wie: Bestimmen, ob ein Prozess reagiert
Aktualisiert: November 2007
Mit der Responding-Eigenschaft bestimmen Sie, ob die Benutzeroberfläche eines Prozesses reagiert. Beim Versuch, die Responding-Eigenschaft zu lesen, wird eine Anforderung an die Benutzeroberfläche des Zielprozesses gesendet. Wenn sofort eine Antwort gegeben wird, ist die zurückgegebene Eigenschaft true. Der Wert false wird zurückgegeben, wenn die Schnittstelle nicht antwortet. Diese Eigenschaft benötigen Sie, wenn Sie eine eingefrorene Anwendung schließen müssen.
So ermitteln Sie, ob ein Prozess reagiert
Wenn der Prozess nicht durch eine Komponente gestartet wurde, weisen Sie dem Zielprozess eine Process-Komponente zu. Weitere Informationen hierzu finden Sie unter Gewusst wie: Binden an vorhandene Prozesse.
Lesen Sie die Responding-Eigenschaft.
Legen Sie abhängig vom Eigenschaftenwert fest, welche Aktion ausgeführt werden muss.
Das folgende Beispiel veranschaulicht, wie Sie ermitteln können, ob der Editor reagiert. Wenn für die Responding-Eigenschaft true festgelegt ist, rufen Sie die CloseMainWindow-Methode auf, um die Anwendung zu schließen. Wenn für die Responding-Eigenschaft false festgelegt ist, wird die M:System.Diagnostics.Process.Kill-Methode aufgerufen, um den Prozess zu schließen.
Dim myProcesses() As Process myProcesses = Process.GetProcessesByName("Notepad.exe") ' Tests the Responding property for a True return value. If myProcesses(0).Responding Then myProcesses(0).CloseMainWindow() Else ' Forces the process to close if the Responding value is False. myProcesses(0).Kill() End If
Process[] notepads; notepads = Process.GetProcessesByName("Notepad.exe"); // Test to see if the process is responding. if (notepads[0].Responding) { notepads[0].CloseMainWindow(); } else { notepads[0].Kill(); }
Siehe auch
Aufgaben
Gewusst wie: Festlegen von Prozessen
Gewusst wie: Anhalten von Prozessen
Gewusst wie: Binden an vorhandene Prozesse