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 值,讓應用程式可以區分繼續和重新開機。

適用於

另請參閱