SystemSetupInfo 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
提供屬性和事件,描述全新體驗 (OOBE) 生命週期中的目前階段。
public ref class SystemSetupInfo abstract sealed
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 458752)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class SystemSetupInfo final
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 458752)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public static class SystemSetupInfo
Public Class SystemSetupInfo
- 繼承
- 屬性
Windows 需求
裝置系列 |
Windows 10, version 1809 (已於 10.0.17763.0 引進)
|
API contract |
Windows.Foundation.UniversalApiContract (已於 v7.0 引進)
|
範例
通用 Windows 平臺 (UWP) app 必須知道 OOBE 是否已完成,因為它在 OOBE (期間有特殊行為,例如,使用者介面中的範圍功能集 (UI) ,或只有在 OOBE 完成之後才會啟動的背景工作) 。 身為 OEM,這可能是在 OOBE 期間執行的應用程式。
private bool ShouldUseSimpleUserInterface()
{
var oobeState = Windows.System.Profile.SystemSetupInfo.OutOfBoxExperienceState;
// When this UWP is shown before OOBE is complete, use a simplified UI
// with limited options, which matches the style of the rest of OOBE.
return (oobeState != SystemOutOfBoxExperienceState.Completed);
}
身為 OEM,您想要知道裝置在工廠測試期間成功開機到 OOBE。 您想要讓每個裝置在製造過程中完成此測試作為最終驗證步驟,因此在自動化期間,您想要在 OOBE 進行中且就緒時收到通知。
// Task that has its result set once OOBE is in progress.
private TaskCompletionSource<object> oobeInProgress;
// Called when OOBE state changes. Guaranteed to be called at least once, at
// the time of event registration.
private void OnOobeStateChanged(object sender, object e)
{
var oobeState = Windows.System.Profile.SystemSetupInfo.OutOfBoxExperienceState;
if (oobeState == SystemOutOfBoxExperienceState.InProgress)
{
oobeInProgress.TrySetResult(null);
}
}
private async void WaitForOobeStartedAsync()
{
oobeInProgress = new TaskCompletionSource<object>();
Windows.System.Profile.SystemSetupInfo.OutOfBoxExperienceStateChanged += OnOobeStateChanged;
await oobeInProgress.Task; // NOTE: you could add a timeout here, and fail when hit.
Windows.System.Profile.SystemSetupInfo.OutOfBoxExperienceStateChanged -= OnOobeStateChanged;
}
備註
全新體驗 (OOBE) 是使用者第一次開啟Windows 10裝置時發生的流程。 OOBE 會接受 EULA、設定系統預設的地區設定,並協助設定初始使用者帳戶。
屬性
OutOfBoxExperienceState |
取得值,表示現成體驗 (OOBE) 生命週期中的目前階段。 |
事件
OutOfBoxExperienceStateChanged |
當現用體驗生命週期中的目前階段 (OOBE) 變更時引發。 |