Dieser Artikel wurde manuell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen.
Übersetzung
Original
Dieser Artikel wurde noch nicht bewertet - Dieses Thema bewerten.

Process.CloseMainWindow-Methode

Schließt einen Prozess mit einer Benutzeroberfläche, indem eine Meldung zum Schließen an das Hauptfenster gesendet wird.

Namespace:  System.Diagnostics
Assembly:  System (in System.dll)
public bool CloseMainWindow()

Rückgabewert

Typ: System.Boolean
true, wenn die Meldung zum Schließen erfolgreich gesendet wurde. false, wenn der zugeordnete Prozess nicht über ein Hauptfenster verfügt oder wenn das Hauptfenster deaktiviert ist (z. B., wenn ein modales Dialogfeld angezeigt wird).
Ausnahme Bedingung
PlatformNotSupportedException

Die Plattform ist Windows 98 oder Windows Millennium Edition (Windows Me). Legen Sie die ProcessStartInfo.UseShellExecute-Eigenschaft auf false fest, um auf diese Eigenschaft unter Windows 98 und Windows Me zuzugreifen.

InvalidOperationException

Der Prozess wurde bereits beendet.

– oder –

Dem Process-Objekt ist kein Prozess zugeordnet.

Wenn ein Prozess ausgeführt wird, befindet sich seine Nachrichtenschleife im Wartezustand. Die Nachrichtenschleife wird jedes Mal ausgeführt, wenn vom Betriebssystem eine Windows-Meldung an den Prozess gesendet wird. Beim Aufrufen von CloseMainWindow wird eine Anforderung zum Schließen des Hauptfensters gesendet, die in einer wohlgeformten Anwendung alle untergeordneten Fenster schließt und alle aktiven Nachrichtenschleifen der Anwendung widerruft. Die Anforderung zum Beenden des Prozesses durch Aufrufen von CloseMainWindow erzwingt nicht die Beendigung der Anwendung. Die Anwendung kann vor dem Beenden eine Bestätigung durch den Benutzer anfordern, oder sie kann die Beendigung verweigern. Wenn Sie die Beendigung der Anwendung erzwingen möchten, verwenden Sie die Kill-Methode. Das Verhalten von CloseMainWindow entspricht dem Schließen des Hauptfensters einer Anwendung durch den Benutzer über das Systemmenü. Daher wird durch die Anforderung, den Prozess durch Schließen des Hauptfensters zu beenden, nicht die unmittelbare Beendigung der Anwendung erzwungen.

Vom Prozess bearbeitete Daten oder dem Prozess zugeordnete Ressourcen können verloren gehen, wenn Kill aufgerufen wird. Kill verursacht eine nicht normale Prozessbeendigung und sollte nur wenn notwendig verwendet werden. CloseMainWindow ermöglicht eine ordentliche Beendigung des Prozesses und schließt alle Fenster, deshalb ist es für Anwendungen mit einer Oberfläche vorzuziehen. Wenn CloseMainWindow fehlschlägt, können Sie den Prozess mithilfe von Kill beenden. Kill stellt die einzige Möglichkeit zum Beenden von Prozessen dar, die keine grafischen Oberflächen aufweisen.

Sie können Kill und CloseMainWindow nur für Prozesse aufrufen, die auf dem lokalen Computer ausgeführt werden. Sie können keine Prozesse auf Remotecomputern beenden. Für auf Remotecomputern ausgeführte Prozesse können Sie lediglich Informationen anzeigen lassen.

Hinweis zu : Diese Eigenschaft ist auf dieser Plattform nicht verfügbar, wenn beim Starten des Prozesses ProcessStartInfo.UseShellExecute auf true festgelegt ist.

Im folgenden Beispiel wird eine Instanz von Editor gestartet. Anschließend wird die Auslastung des physischen Speichers durch den zugeordneten Prozess in Intervallen von zwei Sekunden für maximal zehn Sekunden abgerufen. Dabei wird ermittelt, ob der Prozess vor Ablauf von zehn Sekunden beendet wird. Im Beispiel wird der Prozess beendet, wenn er nach zehn Sekunden weiterhin ausgeführt wird.



using System;
using System.Diagnostics;
using System.Threading;

namespace Process_Sample
{
   class MyProcessClass
   {
      public static void Main()
      {
         try
         {
            Process myProcess;
            myProcess = Process.Start("Notepad.exe");
            // Display physical memory usage 5 times at intervals of 2 seconds.
            for (int i = 0;i < 5; i++)
            {
               if (!myProcess.HasExited)
               {
                   // Discard cached information about the process.
                   myProcess.Refresh();
                   // Print working set to console.
                   Console.WriteLine("Physical Memory Usage: " 
                                        + myProcess.WorkingSet.ToString());
                   // Wait 2 seconds.
                   Thread.Sleep(2000);
               }
               else {
                   break;
               } 
            }

            // Close process by sending a close message to its main window.
            myProcess.CloseMainWindow();
            // Free resources associated with process.
            myProcess.Close();

         }
         catch(Exception e)
         {
            Console.WriteLine("The following exception was raised: ");
            Console.WriteLine(e.Message);
         }
      }
   }
}


.NET Framework

Unterstützt in: 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Unterstützt in: 4, 3.5 SP1
  • LinkDemand  

    für volle Vertrauenswürdigkeit für den unmittelbaren Aufrufer. Dieser Member kann nicht von teilweise vertrauenswürdigem Code verwendet werden.

Windows 7, Windows Vista SP1 oder höher, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (Server Core wird nicht unterstützt), Windows Server 2008 R2 (Server Core wird mit SP1 oder höher unterstützt), Windows Server 2003 SP2

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.
Fanden Sie dies hilfreich?
(1500 verbleibende Zeichen)
Community-Inhalt Hinzufügen
Anmerkungen FAQ