Partager via


Obtenir des informations d’activation pour les applications empaquetées

À compter de la version 1809 de Windows 10, les applications de bureau empaquetées peuvent appeler la méthode AppInstance.GetActivatedEventArgs pour récupérer certains types d’informations d’activation des applications lors du démarrage. Par exemple, vous pouvez appeler cette méthode pour obtenir des informations relatives à l’activation des applications concernant l’ouverture d’un fichier, un clic sur un toast interactif ou l’utilisation d’un protocole. À partir de Windows 10 version 2004, cette fonctionnalité est également prise en charge dans les applications packagées avec un emplacement externe (voir Accorder une identité de package en créant un package avec un emplacement externe).

Note

En plus de récupérer certains types d’informations d’activation à l’aide de la méthode AppInstance.GetActivatedEventArgs comme le décrit cet article, vous pouvez également récupérer les informations d’activation relatives aux tâches en arrière-plan en définissant une classe COM. Pour en savoir plus, consultez Créer et inscrire une tâche en arrière-plan COM winmain.

Exemple de code

L’exemple de code suivant montre comment appeler la méthode AppInstance.GetActivatedEventArgs à partir de la fonction Main dans une application Windows Forms. Pour chaque type d’activation pris en charge par votre application, convertissez la valeur de retour args en type d’argument d’événement correspondant. Dans cet exemple de code, les méthodes Handlexxx sont supposées être du code de gestionnaire d’activation dédié que vous avez défini ailleurs.

static void Main()
{
    Application.EnableVisualStyles();
    Application.SetCompatibleTextRenderingDefault(false);

    var args = AppInstance.GetActivatedEventArgs();
    switch (args.Kind)
    {
        case ActivationKind.Launch:
            HandleLaunch(args as LaunchActivatedEventArgs);
            break;
        case ActivationKind.ToastNotification:
            HandleToastNotification(args as ToastNotificationActivatedEventArgs);
            break;
        case ActivationKind.VoiceCommand:
            HandleVoiceCommand(args as VoiceCommandActivatedEventArgs);
            break;
        case ActivationKind.File:
            HandleFile(args as FileActivatedEventArgs);
            break;
        case ActivationKind.Protocol:
            HandleProtocol(args as ProtocolActivatedEventArgs);
            break;
        case ActivationKind.StartupTask:
            HandleStartupTask(args as StartupTaskActivatedEventArgs);
            break;
        default:
            HandleLaunch(null);
            break;
    }

Types d’activation pris en charge

Vous pouvez utiliser la méthode AppInstance.GetActivatedEventArgs pour récupérer les informations d’activation à partir du jeu d’objets d’arguments d’événement pris en charge répertoriés dans le tableau suivant. Certains de ces types d’activation requièrent l’utilisation d’une extension de package dans le manifeste du package.

Les informations d’activation ShareTargetActivatedEventArgs sont prises en charge uniquement sur Windows 10 version 2004 et les versions ultérieures. Tous les autres types d’informations d’activation sont pris en charge sur Windows 10 version 1809 et les versions ultérieures.

Types d’arguments d’événement Extension du package Documents associés
ShareTargetActivatedEventArgs uap:ShareTarget Faire de votre application de bureau une cible du partage
ProtocolActivatedEventArgs uap:Protocol Démarrer votre application à l’aide d’un protocole
ToastNotificationActivatedEventArgs desktop:ToastNotificationActivation Notifications toast à partir d’applications de bureau
StartupTaskActivatedEventArgs desktop:StartupTask Démarrer un fichier exécutable lorsque les utilisateurs se connectent à Windows
FileActivatedEventArgs uap:FileTypeAssociation Associer votre application empaquetée à un ensemble de types de fichiers
VoiceCommandActivatedEventArgs Aucun(e) Activer une application au premier plan à l’aide de commandes vocales via Cortana
LaunchActivatedEventArgs None