次の方法で共有


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 を呼び出すときに表示され、フォアグラウンドである必要があります。
  • 再起動が失敗しても、ユーザーが後でアプリを手動で起動すると、アプリは正常に起動し、再起動引数は渡されません。
  • アプリが通常の方法で起動されなかったが、共有コントラクト、ファイル ピッカー、app-service などによって起動された場合、ユーザーは結果の動作を期待しないため、アプリはこの API を呼び出さないでください。
  • アプリは、 User オブジェクトの有効性を確認する役割を担います。 そのユーザーがアプリを実行できないようにするポリシーが設定されている場合、アクティブ化は失敗します。
  • この API を呼び出した後、ユーザー エクスペリエンスが低下するため、アプリは拡張実行セッションを要求しないでください。
  • アプリがこの API を呼び出すときに実行中のインプロセス バックグラウンド タスクがある場合、これらのタスクは通常の方法で取り消されます。 アウトプロセスバックグラウンドタスクは影響を受けません。
  • アプリが再起動されると、 LaunchActivatedEventArgs.PreviousExecutionState の値が Terminated になり、アプリで再開と再起動を区別できるようになります。

適用対象

こちらもご覧ください