Partager via


StartupTask Classe

Définition

Représente une application UWP ou une tâche en arrière-plan d’application de bureau qui s’exécute au démarrage du système ou lorsque l’utilisateur se connecte à son appareil.

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
Héritage
Object Platform::Object IInspectable StartupTask
Attributs

Configuration requise pour Windows

Famille d’appareils
Windows Desktop Extension SDK (introduit dans 10.0.14393.0)
API contract
Windows.ApplicationModel.StartupTaskContract (introduit dans v1.0)

Remarques

Cette fonctionnalité est prise en charge sur les versions de bureau de Windows dans les applications UWP et les applications de bureau dans un package d’application Windows. Pour plus d’informations sur les applications de bureau empaquetées (également appelées applications Pont du bureau), consultez Packager des applications de bureau. La prise en charge des applications de bureau empaquetées a été introduite dans la mise à jour anniversaire Windows 10 (version 1607) et pour les applications UWP dans le Windows 10 Fall Creators Update (version 1709).

Une application doit ajouter la windows.startup catégorie d’extension à son manifeste de package d’application pour être activée au démarrage ou lorsque l’utilisateur se connecte. L’ajout de cette extension ne provoque pas automatiquement le démarrage de l’application.

Les applications UWP doivent appeler RequestEnableAsync à partir d’un thread d’interface utilisateur pour déclencher une boîte de dialogue de consentement utilisateur. Si l’utilisateur y consent, l’application UWP démarre au démarrage ou à la connexion de l’utilisateur. Notez que les applications de démarrage UWP commencent à être réduites.

Si RequestEnableAsync est appelé à partir d’une application de bureau empaquetée, aucune boîte de dialogue de consentement utilisateur n’est affichée. Les applications de bureau peuvent définir leurs tâches de démarrage sur Activé dans le manifeste, auquel cas elles n’ont pas besoin d’appeler RequestEnableAsync.

Dans les deux cas, pour activer la fonctionnalité de démarrage, l’utilisateur doit lancer l’application au moins une fois, ou il doit activer la fonctionnalité de démarrage de l’application sur la page Démarrage dans Paramètres. Une fois activé, l’utilisateur contrôle et peut modifier l’état activé de votre application à tout moment via la page Démarrage dans Paramètres ou l’onglet Démarrage dans le Gestionnaire des tâches.

La déclaration d’extension suivante est envoyée dans le manifeste du package d’application. La déclaration que vous utilisez dépend si votre tâche de démarrage sera une application UWP ou une tâche en arrière-plan d’application de bureau.

Extension de tâche de démarrage d’application de bureau empaquetée

<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>
Attribut Description
xmlns:uap5 Spécifie l’espace de noms général du contrat UAP version 5.

Remarque : pour la mise à jour Fall Creators (windows version 1703), utilisez plutôt l’espace de noms XML spécifique au bureau Windows et xmlns:desktop="http://schemas.microsoft.com/appx/manifest/desktop/windows10", remplacez les occurrences de uap5: par desktop: dans l’exemple ci-dessus.
Catégorie Doit avoir la valeur "windows.startupTask".
Exécutable Chemin d’accès relatif au .exe démarrer.
EntryPoint Doit avoir la valeur "Windows.FullTrustApplication".
TaskId Un identificateur unique pour votre tâche. À l’aide de cet identificateur, votre application peut appeler les API de cette classe pour activer ou désactiver par programmation une tâche de démarrage.
Activé Peut être défini sur true pour les applications de bureau empaquetées afin d’indiquer que l’application est activée pour le démarrage sans avoir à appeler d’abord RequestEnableAsync.
DisplayName Le nom de la tâche qui s’affiche dans le Gestionnaire des tâches.

Pour les applications de bureau empaquetées, plusieurs extensions startupTask sont autorisées et chacune peut spécifier un fichier exécutable différent.

Extension de tâche de démarrage d’application 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>
Attribut Description
xmlns:uap5 Les applications UWP utilisent l’espace de noms général du contrat UAP version 5.
Catégorie Doit avoir la valeur "windows.startupTask"
TaskId Identificateur unique de votre tâche. À l’aide de cet identificateur, votre application peut appeler les API de cette classe pour activer ou désactiver par programmation une tâche de démarrage.
Activé Pour les applications UWP, cet attribut est ignoré et la fonctionnalité est implicitement désactivée jusqu’à ce que l’utilisateur lance d’abord l’application et que l’utilisateur confirme la demande de l’application d’activer l’activation au démarrage.
DisplayName Nom de l’application UWP qui s’affiche dans le Gestionnaire des tâches.
Exécutable Ignoré. S’il est fourni, il ne peut pas être vide ou null. L’application à laquelle appartient le fichier Package.appxmanifest est l’exécutable implicite.
EntryPoint Ignoré. S’il est fourni, il ne peut pas être vide ou null. Le point d’entrée est implicite.

Les applications UWP ne doivent avoir qu’une seule entrée exécutable et une extension windows.startupTask .
L’extension windows.startupTask est uniquement disponible pour les applications UWP qui s’exécutent sur le Bureau Windows.

Extension de tâche de démarrage 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>
Attribut Description
xmlns:uap5 Les applications UWP utilisent l’espace de noms général du contrat UAP version 5.
StartPage Nom de la page à afficher au démarrage du WWA.
Catégorie Doit avoir la valeur "windows.startupTask"
TaskId Identificateur unique de votre tâche. À l’aide de cet identificateur, votre application peut appeler les API de cette classe pour activer ou désactiver par programmation une tâche de démarrage.
DisplayName Nom de l’application UWP qui s’affiche dans le Gestionnaire des tâches.

Pour les applications WWA, Exécutable, EntryPoint et Enables sont ignorés et peuvent être manquants ou null.

Exemple

Le code suivant crée un 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;
}

Propriétés

State

Obtient l’état (activé, désactivé ou désactivé par l’utilisateur) de la tâche de démarrage.

TaskId

Obtient l’ID de la tâche de démarrage.

Méthodes

Disable()

Désactive la tâche de démarrage.

GetAsync(String)

Obtient une tâche de démarrage par ID.

GetForCurrentPackageAsync()

Obtient toutes les tâches de démarrage pour le package d’application actuel.

RequestEnableAsync()

Demande que la tâche de démarrage soit activée. Si la tâche a été désactivée par l’utilisateur à l’aide du Gestionnaire des tâches, cette méthode ne remplacera pas son choix et l’utilisateur doit réactiver la tâche manuellement.

S’applique à

Voir aussi