Freigeben über


RegisterApplicationRestart-Funktion (winbase.h)

Registriert die aktive instance einer Anwendung zum Neustart.

Syntax

HRESULT RegisterApplicationRestart(
  [in, optional] PCWSTR pwzCommandline,
  [in]           DWORD  dwFlags
);

Parameter

[in, optional] pwzCommandline

Ein Zeiger auf eine Unicode-Zeichenfolge, die die Befehlszeilenargumente für die Anwendung angibt, wenn sie neu gestartet wird. Die maximale Größe der Befehlszeile, die Sie angeben können, ist RESTART_MAX_CMD_LINE Zeichen. Geben Sie den Namen der ausführbaren Datei nicht in die Befehlszeile ein. diese Funktion fügt sie für Sie hinzu.

Wenn dieser Parameter NULL oder eine leere Zeichenfolge ist, wird die zuvor registrierte Befehlszeile entfernt. Wenn das Argument Leerzeichen enthält, verwenden Sie Anführungszeichen um das Argument herum.

[in] dwFlags

Dieser Parameter kann 0 oder mindestens einer der folgenden Werte sein.

Wert Bedeutung
RESTART_NO_CRASH
1
Starten Sie den Prozess nicht neu, wenn er aufgrund einer nicht behandelten Ausnahme beendet wird.
RESTART_NO_HANG
2
Starten Sie den Prozess nicht neu, wenn er beendet wird, weil die Anwendung nicht reagiert.
RESTART_NO_PATCH
4
Starten Sie den Prozess nicht neu, wenn er aufgrund der Installation eines Updates beendet wird.
RESTART_NO_REBOOT
8
Starten Sie den Prozess nicht neu, wenn der Computer als Ergebnis eines Updates neu gestartet wird.

Rückgabewert

Diese Funktion gibt bei Erfolg S_OK oder einen der folgenden Fehlercodes zurück.

Rückgabecode Beschreibung
E_FAIL
Interner Fehler.
E_INVALIDARG
Die angegebene Befehlszeile ist zu lang.

Hinweise

Ihre anfängliche Registrierung für den Neustart muss erfolgen, bevor die Anwendung auf eine nicht behandelte Ausnahme stößt oder nicht mehr reagiert. Sie können diese Funktion dann in Ihrem Wiederherstellungsrückruf aufrufen, um die Befehlszeile zu aktualisieren.

Für eine Windows-Anwendung, die aktualisiert wird, besteht die letzte Möglichkeit, diese Funktion aufzurufen, während die WM_QUERYENDSESSION Nachricht verarbeitet wird. Bei einer Konsolenanwendung, die aktualisiert wird, muss die Registrierung erfolgen, bevor das Installationsprogramm versucht, die Anwendung herunterzufahren (Sie müssen die Registrierung auf dem neuesten Stand halten; Sie können diese Funktion nicht aufrufen, wenn Sie die CTRL_C_EVENT Benachrichtigung verarbeiten).

Wenn Sie sich für den Neustart registrieren und die Anwendung auf eine nicht behandelte Ausnahme stößt oder nicht reagiert, wird dem Benutzer die Möglichkeit angeboten, die Anwendung neu zu starten. die Anwendung wird nicht automatisch ohne die Zustimmung des Benutzers neu gestartet. Wenn die Anwendung jedoch aktualisiert wird und ein Neustart erforderlich ist, wird die Anwendung automatisch neu gestartet.

Um zyklische Neustarts zu verhindern, startet das System die Anwendung nur neu, wenn sie mindestens 60 Sekunden lang ausgeführt wurde.

Beachten Sie, dass das Installationsprogramm die ExitWindowsEx-Funktion mit festgelegtem EWX_RESTARTAPPS-Flag oder die InitiateShutdown-Funktion mit dem SHUTDOWN_RESTARTAPPS Flag festgelegt aufrufen muss, damit eine Anwendung neu gestartet wird, wenn das Update einen Neustart erfordert.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows Vista [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2008 [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile winbase.h (einschließlich Windows.h)
Bibliothek Kernel32.lib
DLL Kernel32.dll

Siehe auch

Registrierung aufhebenApplicationRestart