StartupTask 類別

定義

代表在系統啟動時執行的 UWP app 或傳統型應用程式背景工作,或當使用者登入其裝置時執行。

public ref class StartupTask sealed
/// [Windows.Foundation.Metadata.ContractVersion(Windows.ApplicationModel.StartupTaskContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class StartupTask final
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.ApplicationModel.StartupTaskContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public sealed class StartupTask
Public NotInheritable Class StartupTask
繼承
Object Platform::Object IInspectable StartupTask
屬性

Windows 需求

裝置系列
Windows Desktop Extension SDK (已於 10.0.14393.0 引進)
API contract
Windows.ApplicationModel.StartupTaskContract (已於 v1.0 引進)

備註

在 Windows 應用程式套件的 UWP 應用程式和傳統型應用程式中,Windows 桌上出版本都支援此功能。 如需封裝傳統型應用程式的詳細資訊, (也稱為 傳統型橋接器 Apps) ,請參閱封裝傳統型應用程式。 Windows 10年度更新版 (1607) ,以及 Windows 10 Fall Creators Update (1709 版) 中的 UWP app 引進了封裝傳統型應用程式的支援。

應用程式必須將擴充功能類別新增 windows.startup 至其應用程式套件資訊清單,才能在啟動時或使用者登入時啟動。 新增此延伸模組本身不會自動造成應用程式啟動。

UWP app 必須從 UI 執行緒呼叫 RequestEnableAsync ,以觸發使用者同意對話方塊。 如果使用者同意,UWP 應用程式會在啟動時啟動或使用者登入。 請注意,UWP 啟動應用程式將會最小化。

如果從已封裝的桌面應用程式呼叫 RequestEnableAsync ,則不會顯示任何使用者同意對話方塊。 傳統型應用程式可以在資訊清單中將其啟動工作設定為 Enabled ,在此情況下,他們不需要呼叫 RequestEnableAsync

在這兩種情況下,若要啟用啟動功能,使用者必須至少啟動應用程式一次,或必須在 [設定] 的 [啟動] 頁面上啟用應用程式的啟動功能。 啟用之後,使用者就可以透過 [設定] 中的 [啟動] 頁面,或 [工作管理員] 中的 [啟動] 索引標籤,隨時變更應用程式的啟用狀態。

下列延伸模組宣告會進入應用程式套件資訊清單。 您使用的宣告取決於您的啟動工作是 UWP 應用程式或傳統型應用程式背景工作。

已封裝傳統型應用程式啟動工作延伸模組

<Package xmlns:uap5="http://schemas.microsoft.com/appx/manifest/uap/windows10/5"...>
...
<Applications>
    <Application ...>
        ...
        <Extensions>
          <uap5:Extension
            Category="windows.startupTask"
            Executable="MyDesktopApp.exe"
            EntryPoint="Windows.FullTrustApplication">
            <uap5:StartupTask
              TaskId="MyStartupId"
              Enabled="false"
              DisplayName="My Desktop App" />
          </uap5:Extension>
        </Extensions>
    </Application>
</Applications>
屬性 Description
xmlns:uap5 指定一般 UAP 合約第 5 版命名空間。

注意:針對 Fall Creators update (Windows 1703 版) 請改用 Windows 桌面特定的 XML 命名空間, xmlns:desktop="http://schemas.microsoft.com/appx/manifest/desktop/windows10", 並在上述範例中將 取代為 uap5:desktop:
類別 必須有 值 "windows.startupTask"
可執行檔 要啟動之 .exe 的相對路徑。
EntryPoint 必須有 值 "Windows.FullTrustApplication"
TaskId 您工作的唯一識別碼。 使用此識別碼,您的應用程式可以呼叫此類別中的 API,以程式設計方式啟用或停用啟動工作。
Enabled 針對已封裝的桌面應用程式,可設定為 true ,表示應用程式已啟用啟動,而不需要先呼叫 RequestEnableAsync
DisplayName 出現在工作管理員中工作的名稱。

針對已封裝的桌面應用程式,允許多個 startupTask 擴充功能,而且每一個都可以指定不同的可執行檔。

UWP 應用程式啟動工作延伸模組

<Package xmlns:uap5="http://schemas.microsoft.com/appx/manifest/uap/windows10/5" ...>
...
<Applications>
    <Application ...>
        ...
        <Extensions>
          <uap5:Extension Category="windows.startupTask">
            <uap5:StartupTask
              TaskId="MyStartupId"
              Enabled="false"
              DisplayName="Test startup" />
          </uap5:Extension>
      </Extensions>
    </Application>
</Applications>
屬性 Description
xmlns:uap5 UWP app 使用一般 UAP 合約第 5 版命名空間。
類別 必須具有 值 "windows.startupTask"
TaskId 工作的唯一識別碼。 使用此識別碼,您的應用程式可以呼叫此類別中的 API,以程式設計方式啟用或停用啟動工作。
Enabled 對於 UWP app,系統會忽略此屬性,並隱含停用此功能,直到使用者第一次啟動應用程式,且使用者確認應用程式在啟動時啟用的要求。
DisplayName 出現在工作管理員中的 UWP 應用程式名稱。
可執行檔 忽略。 如果提供,它不能是空的或 Null。 此 Package.appxmanifest 檔案所屬的應用程式是隱含的可執行檔。
EntryPoint 忽略。 如果提供,它不能是空的或 Null。 進入點是隱含的。

UWP app 應該只有一個 可執行檔 專案和 windows.startupTask 延伸模組。
windows.startupTask擴充功能僅適用于在 Windows 桌面上執行的 UWP 應用程式。

Windows Web App (WWA) 啟動工作延伸模組

<Package xmlns:uap5="http://schemas.microsoft.com/appx/manifest/uap/windows10/5" .m..>
...
<Applications>
    <Application ...>
        ...
        <Extensions>
          <uap5:Extension Category="windows.startupTask" StartPage="EntryPage">
            <uap5:StartupTask
              TaskId="MyStartupId"
              DisplayName="Test startup"/>
          </uap5:Extension>
      </Extensions>
    </Application>
</Applications>
屬性 Description
xmlns:uap5 UWP app 使用一般 UAP 合約第 5 版命名空間。
StartPage WWA 啟動時要顯示的頁面名稱。
類別 必須具有 值 "windows.startupTask"
TaskId 工作的唯一識別碼。 使用此識別碼,您的應用程式可以呼叫此類別中的 API,以程式設計方式啟用或停用啟動工作。
DisplayName 出現在工作管理員中的 UWP 應用程式名稱。

對於 WWA 應用程式, 可執行檔EntryPointEnables 會被忽略,而且可能遺失或 Null。

範例

下列程式碼會建立 StartupTask

StartupTask startupTask = await StartupTask.GetAsync("MyStartupId"); // Pass the task ID you specified in the appxmanifest file
switch (startupTask.State)
{
    case StartupTaskState.Disabled:
        // Task is disabled but can be enabled.
        StartupTaskState newState = await startupTask.RequestEnableAsync(); // ensure that you are on a UI thread when you call RequestEnableAsync()
        Debug.WriteLine("Request to enable startup, result = {0}", newState);
        break;
    case StartupTaskState.DisabledByUser:
        // Task is disabled and user must enable it manually.
        MessageDialog dialog = new MessageDialog(
            "You have disabled this app's ability to run " +
            "as soon as you sign in, but if you change your mind, " +
            "you can enable this in the Startup tab in Task Manager.",
            "TestStartup");
        await dialog.ShowAsync();
        break;
    case StartupTaskState.DisabledByPolicy:
        Debug.WriteLine("Startup disabled by group policy, or not supported on this device");
        break;
    case StartupTaskState.Enabled:
        Debug.WriteLine("Startup is enabled.");
        break;
}

屬性

State

取得啟動工作的使用者) 啟用、停用或停用 (的狀態。

TaskId

取得啟動工作的識別碼。

方法

Disable()

停用啟動工作。

GetAsync(String)

依識別碼取得啟動工作。

GetForCurrentPackageAsync()

取得目前應用程式套件的所有啟動工作。

RequestEnableAsync()

要求啟用啟動工作。 如果使用者使用工作管理員停用工作,這個方法將不會覆寫其選擇,而且使用者必須手動重新啟用工作。

適用於

另請參閱