Partager via


CoreApplication.RequestRestartForUserAsync(User, String) Méthode

Définition

Redémarrez l’application dans le contexte d’un autre utilisateur.

public:
 static IAsyncOperation<AppRestartFailureReason> ^ RequestRestartForUserAsync(User ^ user, Platform::String ^ launchArguments);
/// [Windows.Foundation.Metadata.RemoteAsync]
 static IAsyncOperation<AppRestartFailureReason> RequestRestartForUserAsync(User const& user, winrt::hstring const& launchArguments);
[Windows.Foundation.Metadata.RemoteAsync]
public static IAsyncOperation<AppRestartFailureReason> RequestRestartForUserAsync(User user, string launchArguments);
function requestRestartForUserAsync(user, launchArguments)
Public Shared Function RequestRestartForUserAsync (user As User, launchArguments As String) As IAsyncOperation(Of AppRestartFailureReason)

Paramètres

user
User

Utilisateur en tant que qui doit redémarrer l’application.

launchArguments
String

Platform::String

winrt::hstring

Arguments à passer à l’instance redémarré.

Retours

Status de la demande de redémarrage.

Attributs

Configuration requise pour Windows

Famille d’appareils
Windows 10 Fall Creators Update (introduit dans 10.0.16299.0)
API contract
Windows.Foundation.UniversalApiContract (introduit dans v5.0)

Exemples

private async void RestartAsAnotherUser(string selectedUser)
{
    IReadOnlyList<User> users = await User.FindAllAsync();
    foreach (User user in users)
    {
        object accountProperty =
            await user.GetPropertyAsync(KnownUserProperties.AccountName);
        string accountName = (string)accountProperty;
        if (accountName == selectedUser)
        {
            // Attempt restart, with arguments.
            AppRestartFailureReason result = await App.RequestRestartForUserAsync(
                user, "-fastInit -mainMenu");

            // Restart request denied, tell the user to restart manually.
            if (result== AppRestartFailureReason.InvalidUser)
            {
                SendToast(string.Format("Could not restart as user {0} - please manually restart.", user));
            }
        }
    }
}

Remarques

  • L’application doit être visible et au premier plan quand elle appelle cette API.
  • Si le redémarrage échoue, mais que l’utilisateur lance ensuite l’application manuellement, l’application se lance normalement et aucun argument de redémarrage n’est passé.
  • Si l’application n’a pas été lancée normalement, mais a été lancée par un contrat de partage, un sélecteur de fichiers, un service d’application, etc., l’application ne doit pas appeler cette API, car l’utilisateur ne s’attend pas au comportement résultant.
  • L’application est chargée de garantir la validité de l’objet User . L’activation échoue s’il existe une stratégie en place qui empêche cet utilisateur d’exécuter l’application.
  • L’application ne doit pas demander une session d’exécution étendue après avoir appelé cette API, car cela entraînera une expérience utilisateur médiocre.
  • Si l’application a des tâches en arrière-plan in-process en cours d’exécution lorsqu’elle appelle cette API, ces tâches sont annulées normalement. Les tâches en arrière-plan hors processus ne seront pas affectées.
  • Lorsque l’application est redémarrée, LaunchActivatedEventArgs.PreviousExecutionState a la valeur Terminated afin que l’application puisse faire la distinction entre un cv et un redémarrage.

S’applique à

Voir aussi