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 , чтобы приложение могло различать возобновление и перезапуск.