StartupTask Klasse

Definition

Stellt eine UWP-App oder eine Desktopanwendungs-Hintergrundaufgabe dar, die beim Systemstart oder bei der Anmeldung des Benutzers bei ihrem Gerät ausgeführt wird.

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
Vererbung
Object Platform::Object IInspectable StartupTask
Attribute

Windows-Anforderungen

Gerätefamilie
Windows Desktop Extension SDK (eingeführt in 10.0.14393.0)
API contract
Windows.ApplicationModel.StartupTaskContract (eingeführt in v1.0)

Hinweise

Diese Funktionalität wird in Desktopversionen von Windows sowohl in UWP-Apps als auch in Desktopanwendungen in einem Windows-App-Paket unterstützt. Weitere Informationen zu gepackten Desktopanwendungen (auch als Desktop-Brücke Apps bezeichnet) finden Sie unter Verpacken von Desktopanwendungen. Unterstützung für gepackte Desktopanwendungen wurde im Windows 10 Anniversary Update (Version 1607) und für UWP-Apps im Windows 10 Fall Creators Update (Version 1709) eingeführt.

Eine App muss die Erweiterungskategorie windows.startup ihrem App-Paketmanifest hinzufügen, um beim Start oder bei der Anmeldung des Benutzers aktiviert zu werden. Wenn Sie diese Erweiterung hinzufügen, wird die App nicht automatisch gestartet.

UWP-Apps müssen RequestEnableAsync aus einem UI-Thread aufrufen, um ein Dialogfeld für die Benutzereinwilligung auszulösen. Wenn der Benutzer zustimmt, wird die UWP-App beim Start oder beim Anmelden des Benutzers gestartet. Beachten Sie, dass UWP-Start-Apps minimiert gestartet werden.

Wenn RequestEnableAsync von einer gepackten Desktop-App aufgerufen wird, wird kein Dialogfeld für die Benutzereinwilligung angezeigt. Desktop-Apps können ihre Startaufgaben im Manifest auf Aktiviert festlegen. In diesem Fall müssen sie RequestEnableAsync nicht aufrufen.

In beiden Fällen muss der Benutzer die App mindestens einmal starten, um die Startfunktion zu aktivieren, oder er muss die Startfunktionalität für die App auf der Startseite in den Einstellungen aktivieren. Nach der Aktivierung hat der Benutzer die Kontrolle und kann den aktivierten Status Ihrer App jederzeit über die Startseite in den Einstellungen oder die Registerkarte Start im Task-Manager ändern.

Die folgende Erweiterungsdeklaration wird in das App-Paketmanifest eingefügt. Die von Ihnen verwendete Deklaration hängt davon ab, ob es sich bei der Startaufgabe um eine UWP-App oder eine Desktop-App-Hintergrundaufgabe handelt.

Startaufgabenerweiterung für verpackte Desktop-Apps

<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>
attribute Beschreibung
xmlns:uap5 Gibt den allgemeinen Namespace der UAP-Vertragsversion 5 an.

Hinweis: Verwenden Sie für das Fall Creators-Update (Windows-Version 1703) stattdessen den windows Desktop-spezifischen XML-Namespace, xmlns:desktop="http://schemas.microsoft.com/appx/manifest/desktop/windows10", und ersetzen Sie vorkommen von uap5:desktop: durch im obigen Beispiel.
Kategorie Muss über den Wert "windows.startupTask"verfügen.
Ausführbare Datei Der relative Pfad zum zu startenden .exe.
EntryPoint Muss über den Wert "Windows.FullTrustApplication"verfügen.
TaskId Ein eindeutiger Bezeichner für deine Aufgabe. Mithilfe dieses Bezeichners kann Ihre App die APIs in dieser Klasse aufrufen, um eine Startaufgabe programmgesteuert zu aktivieren oder zu deaktivieren.
Aktiviert Kann für gepackte Desktop-Apps auf true festgelegt werden, um anzugeben, dass die App für den Start aktiviert ist, ohne zuvor RequestEnableAsync aufrufen zu müssen.
DisplayName Der Name der Aufgabe, die im Task-Manager angezeigt wird.

Für gepackte Desktop-Apps sind mehrere startupTask-Erweiterungen zulässig, und jede kann eine andere ausführbare Datei angeben.

UWP-App-Starttaskerweiterung

<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>
attribute Beschreibung
xmlns:uap5 UWP-Apps verwenden den allgemeinen UAP-Vertragsnamespace Version 5.
Kategorie Muss über den Wert verfügen. "windows.startupTask"
TaskId Der eindeutige Bezeichner für Ihre Aufgabe. Mithilfe dieses Bezeichners kann Ihre App die APIs in dieser Klasse aufrufen, um eine Startaufgabe programmgesteuert zu aktivieren oder zu deaktivieren.
Aktiviert Bei UWP-Apps wird dieses Attribut ignoriert, und das Feature wird implizit deaktiviert, bis der Benutzer die App zum ersten Mal startet und der Benutzer die Anforderung der App bestätigt, die Aktivierung beim Start zu aktivieren.
DisplayName Der Name der UWP-App, die im Task-Manager angezeigt wird.
Ausführbare Datei Ignoriert. Wenn angegeben, darf er nicht leer oder NULL sein. Die App, zu der diese Package.appxmanifest-Datei gehört, ist die implizite ausführbare Datei.
EntryPoint Ignoriert. Wenn angegeben, darf er nicht leer oder NULL sein. Der Einstiegspunkt ist impliziert.

UWP-Apps sollten nur über einen ausführbaren Eintrag und die Erweiterung windows.startupTask verfügen.
Die Windows.startupTask-Erweiterung ist nur für UWP-Apps verfügbar, die unter Windows Desktop ausgeführt werden.

Windows Web App (WWA)-Starttaskerweiterung

<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>
attribute Beschreibung
xmlns:uap5 UWP-Apps verwenden den allgemeinen UAP-Vertragsnamespace Version 5.
StartPage Der Name der Seite, die beim Start des WWA angezeigt werden soll.
Kategorie Muss über den Wert verfügen. "windows.startupTask"
TaskId Der eindeutige Bezeichner für Ihre Aufgabe. Mithilfe dieses Bezeichners kann Ihre App die APIs in dieser Klasse aufrufen, um eine Startaufgabe programmgesteuert zu aktivieren oder zu deaktivieren.
DisplayName Der Name der UWP-App, die im Task-Manager angezeigt wird.

Für WWA-Apps werden ausführbare Dateien, EntryPoint und Enables ignoriert und können entweder fehlen oder NULL sein.

Beispiel

Mit dem folgenden Code wird ein StartupTask erstellt:

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;
}

Eigenschaften

State

Ruft den Status (aktiviert, deaktiviert oder vom Benutzer deaktiviert) der Startaufgabe ab.

TaskId

Ruft die ID der Startaufgabe ab.

Methoden

Disable()

Deaktiviert die Startaufgabe.

GetAsync(String)

Ruft eine Startaufgabe nach ID ab.

GetForCurrentPackageAsync()

Ruft alle Startaufgaben für das aktuelle App-Paket ab.

RequestEnableAsync()

Fordert an, dass die Startaufgabe aktiviert wird. Wenn der Task vom Benutzer mithilfe des Task-Managers deaktiviert wurde, überschreibt diese Methode nicht seine Wahl, und der Benutzer muss die Aufgabe manuell erneut aktivieren.

Gilt für:

Weitere Informationen