Поделиться через


CoreApplication.RequestRestartForUserAsync(User, String) Метод

Определение

Перезапустите приложение в контексте другого пользователя.

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)

Параметры

user
User

Пользователь, от имени который нужно перезапустить приложение.

launchArguments
String

Platform::String

winrt::hstring

Аргументы для передачи в перезапущенный экземпляр.

Возвращаемое значение

Состояние запроса на перезапуск.

Атрибуты

Требования к Windows

Семейство устройств
Windows 10 Fall Creators Update (появилось в 10.0.16299.0)
API contract
Windows.Foundation.UniversalApiContract (появилось в v5.0)

Примеры

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

Комментарии

  • Приложение должно быть видимым и передним планом при вызове этого API.
  • Если перезагрузка завершается сбоем, но пользователь впоследствии запускает приложение вручную, приложение запускается в обычном режиме и аргументы перезапуска не передаются.
  • Если приложение не было запущено обычным образом, но было запущено контрактом общего доступа, средством выбора файлов, службой приложений и т. д., приложение не должно вызывать этот API, так как пользователь не ожидает результирующего поведения.
  • Приложение отвечает за допустимость объекта User . Активация завершится ошибкой, если существует политика, которая запрещает пользователю выполнять приложение.
  • Приложение не должно запрашивать сеанс расширенного выполнения после вызова этого API, так как это приведет к ухудшению взаимодействия с пользователем.
  • Если в приложении есть фоновые задачи внутри процесса, выполняемые при вызове этого API, эти задачи будут отменены обычным образом. Фоновые задачи вне процесса не будут затронуты.
  • При перезапуске приложения LaunchActivatedEventArgs.PreviousExecutionState будет иметь значение Terminated , чтобы приложение могло различать возобновление и перезапуск.

Применяется к

См. также раздел