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 retournée
Cette fonction retourne S_OK sur la réussite ou l’un des codes d’erreur suivants.
Code de retour | Description |
---|---|
|
Erreur interne. |
|
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 |