StartupTask Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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
- 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. |