Freigeben über


CoreApplication.RequestRestartForUserAsync(User, String) Methode

Definition

Starten Sie die App im Kontext eines anderen Benutzers neu.

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)

Parameter

user
User

Der Benutzer, unter dem die App neu gestartet werden soll.

launchArguments
String

Platform::String

winrt::hstring

Die Argumente, die an den neu gestarteten instance übergeben werden sollen.

Gibt zurück

Die status der Neustartanforderung.

Attribute

Windows-Anforderungen

Gerätefamilie
Windows 10 Fall Creators Update (eingeführt in 10.0.16299.0)
API contract
Windows.Foundation.UniversalApiContract (eingeführt in v5.0)

Beispiele

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));
            }
        }
    }
}

Hinweise

  • Die App muss sichtbar und im Vordergrund stehen, wenn sie diese API aufruft.
  • Wenn der Neustart fehlschlägt, aber der Benutzer die App anschließend manuell startet, wird die App normal gestartet, und es werden keine Neustartargumente übergeben.
  • Wenn die App nicht auf normale Weise gestartet wurde, sondern von einem Freigabevertrag, einer Dateiauswahl, einem App-Dienst usw. gestartet wurde, sollte die App diese API nicht aufrufen, da der Benutzer das resultierende Verhalten nicht erwartet.
  • Die App ist dafür verantwortlich, die Gültigkeit des User-Objekts sicherzustellen. Die Aktivierung schlägt fehl, wenn eine Richtlinie vorhanden ist, die verhindert, dass dieser Benutzer die App ausführt.
  • Die App sollte keine Sitzung für erweiterte Ausführung anfordern, nachdem sie diese API aufgerufen hat, da dies zu einer schlechten Benutzererfahrung führt.
  • Wenn die App beim Aufrufen dieser API über In-Process-Hintergrundaufgaben verfügt, werden diese Aufgaben auf normale Weise abgebrochen. Hintergrundaufgaben außerhalb des Prozesses sind nicht betroffen.
  • Wenn die App neu gestartet wird, weist LaunchActivatedEventArgs.PreviousExecutionState den Wert Terminated auf , sodass die App zwischen einem Fortsetzen und einem Neustart unterscheiden kann.

Gilt für:

Weitere Informationen