Partager via


Fonction RegisterApplicationRestart (winbase.h)

Inscrit le instance actif d’une application pour le redémarrage.

Syntaxe

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

Paramètres

[in, optional] pwzCommandline

Pointeur vers une chaîne Unicode qui spécifie les arguments de ligne de commande de l’application lors du redémarrage. La taille maximale de la ligne de commande que vous pouvez spécifier est RESTART_MAX_CMD_LINE caractères. N’incluez pas le nom de l’exécutable dans la ligne de commande ; cette fonction l’ajoute pour vous.

Si ce paramètre a la valeur NULL ou une chaîne vide, la ligne de commande précédemment inscrite est supprimée. Si l’argument contient des espaces, utilisez des guillemets autour de l’argument.

[in] dwFlags

Ce paramètre peut être 0 ou une ou plusieurs des valeurs suivantes.

Valeur Signification
RESTART_NO_CRASH
1
Ne redémarrez pas le processus s’il se termine en raison d’une exception non gérée.
RESTART_NO_HANG
2
Ne redémarrez pas le processus s’il se termine parce que l’application ne répond pas.
RESTART_NO_PATCH
4
Ne redémarrez pas le processus s’il se termine en raison de l’installation d’une mise à jour.
RESTART_NO_REBOOT
8
Ne redémarrez pas le processus si l’ordinateur est redémarré à la suite d’une mise à jour.

Valeur retournée

Cette fonction retourne S_OK sur la réussite ou l’un des codes d’erreur suivants.

Code de retour Description
E_FAIL
Erreur interne.
E_INVALIDARG
La ligne de commande spécifiée est trop longue.

Remarques

Votre inscription initiale pour le redémarrage doit se produire avant que l’application rencontre une exception non prise en charge ou ne réponde plus. Vous pouvez ensuite appeler cette fonction à partir de votre rappel de récupération pour mettre à jour la ligne de commande.

Pour une application Windows en cours de mise à jour, la dernière possibilité d’appeler cette fonction est lors du traitement du message WM_QUERYENDSESSION . Pour une application console en cours de mise à jour, l’inscription doit se produire avant que le programme d’installation ne tente d’arrêter l’application (vous devez maintenir l’inscription à jour ; vous ne pouvez pas appeler cette fonction lors de la gestion de la notification CTRL_C_EVENT).

Si vous vous inscrivez au redémarrage et que l’application rencontre une exception non prise en charge ou n’est pas réactive, l’utilisateur a la possibilité de redémarrer l’application ; l’application n’est pas redémarrée automatiquement sans le consentement de l’utilisateur. Toutefois, si l’application est mise à jour et nécessite un redémarrage, l’application est redémarrée automatiquement.

Pour empêcher les redémarrages cycliques, le système ne redémarre l’application que si elle s’exécute depuis au moins 60 secondes.

Notez que pour qu’une application soit redémarrée lorsque la mise à jour nécessite un redémarrage de l’ordinateur, le programme d’installation doit appeler la fonction ExitWindowsEx avec le jeu d’indicateurs EWX_RESTARTAPPS ou la fonction InitiateShutdown avec le jeu d’indicateurs SHUTDOWN_RESTARTAPPS.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows Vista [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2008 [applications de bureau uniquement]
Plateforme cible Windows
En-tête winbase.h (inclure Windows.h)
Bibliothèque Kernel32.lib
DLL Kernel32.dll

Voir aussi

Annuler l’inscriptionApplicationRestart