Wird heruntergefahren...

Es gibt drei Möglichkeiten für eine Anwendung, lokale oder Remotecomputer herunterzufahren:

  • Herunterfahren des Systems
  • Fahren Sie das System herunter, und starten Sie es neu.
  • Fahren Sie die Anwendung herunter, fahren Sie das System herunter und starten Sie es neu, und starten Sie alle Anwendungen neu, die für den Neustart registriert wurden.

Verwenden Sie zum Herunterfahren des Systems die ExitWindowsEx-Funktion mit dem flag EWX_SHUTDOWN. Ein Beispiel finden Sie unter Herunterfahren des Systems. Um das System herunterzufahren und neu zu starten, verwenden Sie das Flag EWX_REBOOT. Verwenden Sie das Flag EXW_RESTARTAPPS, um alle Anwendungen neu zu starten, die für den Neustart mit der Funktion RegisterApplicationRestart registriert wurden.

Die Funktionen InitiateShutdown, InitiateSystemShutdown und InitiateSystemShutdownEx starten einen Timer und zeigen ein Dialogfeld an, in dem der Benutzer aufgefordert wird, sich abzumelden. Während dieses Dialogfelds angezeigt wird, kann die Funktion AbortSystemShutdown den Timer beenden und verhindern, dass der Computer heruntergefahren wird. Wenn der Timer jedoch abläuft, wird der Computer heruntergefahren. Diese Funktionen können den Computer auch nach einem Herunterfahren neu starten. Weitere Informationen finden Sie unter Anzeigen des Dialogfelds Herunterfahren.

Benachrichtigungen zum Herunterfahren

Anwendungen mit einem Fenster und einer Nachrichtenwarteschlange erhalten Benachrichtigungen zum Herunterfahren über die WM_QUERYENDSESSION und WM_ENDSESSION Nachrichten. Diese Anwendungen sollten TRUE zurückgeben, um anzugeben, dass sie beendet werden können. Anwendungen sollten das Herunterfahren des Systems nur blockieren, wenn dies unbedingt erforderlich ist. Anwendungen sollten während der Verarbeitung WM_ENDSESSION alle erforderlichen Bereinigungen durchführen. Anwendungen mit nicht gespeicherten Daten können die Daten an einem temporären Speicherort speichern und beim nächsten Start der Anwendung wiederherstellen. Es wird empfohlen, dass Anwendungen ihre Daten und ihren Zustand häufig speichern. Speichern Sie beispielsweise automatisch Daten zwischen vom Benutzer initiierten Speichervorgängen, um die Menge der beim Herunterfahren zu speichernden Daten zu reduzieren.

Konsolenanwendungen erhalten in ihren Handlerroutinen Benachrichtigungen zum Herunterfahren. Verwenden Sie zum Registrieren eines Konsolenhandlers die SetConsoleCtrlHandler-Funktion .

Dienstanwendungen erhalten in ihren Handlerroutinen Benachrichtigungen zum Herunterfahren. Verwenden Sie zum Registrieren eines Dienststeuerelementhandlers die Funktion RegisterServiceCtrlHandlerEx .

Blockieren des Herunterfahrens

Wenn eine Anwendung ein potenzielles Herunterfahren des Systems blockieren muss, kann sie die ShutdownBlockReasonCreate-Funktion aufrufen. Der Aufrufer stellt eine Grundzeichenfolge bereit, die dem Benutzer angezeigt wird. Die Grundzeichenfolge sollte kurz und klar sein und dem Benutzer die informationen bereitstellen, die erforderlich sind, um zu entscheiden, ob das System weiterhin heruntergefahren werden soll.

So wird's gemacht: Herunterfahren des Systems