CoreApplication.RequestRestartForUserAsync(User, String) Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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.