Herunterfahren

Es gibt drei Möglichkeiten, wie eine Anwendung lokale oder Remotecomputer herunterfahren kann:

  • Herunterfahren des Systems
  • Herunterfahren des Systems und Neustart
  • Herunterfahren der Anwendung, herunterfahren und das System neu starten und alle Anwendungen neu starten, die für den Neustart registriert wurden

Um das System herunterzufahren, verwenden Sie die Funktion ExitWindowsEx mit dem EWX_SHUTDOWN Flag. Ein Beispiel finden Sie unter "Herunterfahren des Systems". Wenn Sie das System herunterfahren und neu starten möchten, verwenden Sie das EWX_REBOOT Flag. Um alle Anwendungen neu zu starten, die mit der Funktion "RegisterApplicationRestart " registriert wurden, verwenden Sie das EXW_RESTARTAPPS-Flag.

Die Funktionen " InitialShutdown", " InitialSystemShutdown" und " InitialSystemShutdownEx " starten einen Timer und zeigen ein Dialogfeld an, das den Benutzer aufgefordert, sich abzumelden. Während dieses Dialogfelds angezeigt wird, kann die Funktion AbortSystemShutdown den Timer beenden und verhindern, dass der Computer heruntergefahren wird. Wenn der Zeitgeber jedoch abläuft, wird der Computer heruntergefahren. Diese Funktionen können den Computer auch neu starten, nachdem ein Herunterfahren ausgeführt wurde. Weitere Informationen finden Sie im Dialogfeld "Herunterfahren".

Herunterfahren von Benachrichtigungen

Anwendungen mit einer Fenster- und Nachrichtenwarteschlange erhalten herunterfahrende Benachrichtigungen ü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 nicht blockieren, es sei denn, es ist absolut erforderlich. Anwendungen sollten bei der Verarbeitung WM_ENDSESSION alle erforderlichen Bereinigungen ausführen. Anwendungen, die nicht gespeicherte Daten haben, können die Daten an einem temporären Speicherort speichern und sie beim nächsten Starten der Anwendung wiederherstellen. Es wird empfohlen, dass Anwendungen ihre Daten und ihren Zustand häufig speichern; Speichern Sie z. B. automatisch Daten zwischen gespeicherten Vorgängen, die vom Benutzer initiiert werden, um die Menge der daten zu reduzieren, die beim Herunterfahren gespeichert werden sollen.

Konsolenanwendungen erhalten herunterfahrene Benachrichtigungen in ihren Handlerroutine. Um einen Konsolenhandler zu registrieren, verwenden Sie die Funktion "SetConsoleCtrlHandler ".

Dienstanwendungen erhalten herunterfahrene Benachrichtigungen in ihren Handlerroutine. Um einen Dienststeuerelementhandler zu registrieren, verwenden Sie die Funktion "RegisterServiceCtrlHandlerEx ".

Blockieren des Herunterfahrens

Wenn eine Anwendung ein potenzielles Systemabfahren 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, indem der Benutzer die erforderlichen Informationen bereitstellt, um zu entscheiden, ob das System weiterhin heruntergefahren werden soll.

So wird's gemacht: Herunterfahren des Systems