Activation des notifications toast à partir d’applications de bureau

Les applications Win32 empaquetées et non empaquetées peuvent envoyer des notifications toast interactives comme les applications UWP. Cela inclut les applications packagées (consultez Créer un nouveau projet pour une application de bureau WinUI 3 packagée), les applications packagées avec un emplacement externe (consultez Octroyer l'identité du package en le packagant avec un emplacement externe) et les applications non packagées (consultez Créer un nouveau projet pour une application de bureau WinUI 3 non packagée).

Toutefois, pour une application Win32 non empaquetée, il existe quelques étapes spéciales. Cela est dû aux différents schémas d'activation, et à l'absence d'identité du package au moment de l'exécution.

Dans cette rubrique, nous allons répertorier les options dont vous disposez pour envoyer une notification toast sur Windows 10. Chaque option prend entièrement en charge...

  • Persistance dans le Centre de notifications
  • Activation à partir de la fenêtre contextuelle et à l’intérieur du Centre de notifications
  • Activation pendant que votre EXE n’est pas en cours d’exécution

Toute les options

Le tableau ci-dessous illustre vos options de prise en charge des toasts au sein de votre application de bureau et des fonctionnalités prises en charge correspondantes. Vous pouvez utiliser la table pour sélectionner la meilleure option pour votre scénario.

Option Objets visuels Actions Entrées Active in-process
Activateur COM ✔️ ✔️ ✔️ ✔️
No COM / Stub CLSID ✔️ ✔️

Option préférée - Activateur COM

Il s’agit de l’option préférée qui fonctionne pour les applications de bureau et prend en charge toutes les fonctionnalités de notification. N’avez pas peur de l’activateur COM ; Nous disposons d’une bibliothèque pour les applications C# et C++ qui rend cette opération très simple, même si vous n’avez jamais écrit un serveur COM auparavant.

Objets visuels Actions Entrées Active in-process
✔️ ✔️ ✔️ ✔️

Avec l’option d’activateur COM, vous pouvez utiliser les modèles de notification et les types d’activation suivants dans votre application.

Type de modèle et d’activation Empaqueté Non empaqueté
Premier plan toastGeneric ✔️ ✔️
Arrière-plan ToastGeneric ✔️ ✔️
Protocole ToastGeneric ✔️ ✔️
Modèles hérités ✔️

Remarque

Si vous ajoutez l’activateur COM à votre application empaquetée existante, les activations de notification de premier plan/arrière-plan et héritée activent votre activateur COM au lieu de votre ligne de commande.

Pour savoir comment utiliser cette option, consultez Envoyer une notification toast locale à partir d’applications C# de bureau ou envoyer une notification toast locale à partir d’applications WRL Win32 C++.

Option alternative - Aucun CLSID COM /Stub

Il s’agit d’une autre option si vous ne pouvez pas implémenter d’activateur COM. Toutefois, vous sacrifierez quelques fonctionnalités, telles que la prise en charge des entrées (zones de texte sur les toasts) et l’activation dans le processus.

Objets visuels Actions Entrées Active in-process
✔️ ✔️

Avec cette option, si vous prenez en charge le bureau, vous êtes beaucoup plus limité dans les modèles de notification et les types d’activation que vous pouvez utiliser, comme indiqué ci-dessous.

Type de modèle et d’activation Empaqueté Non empaqueté
Premier plan toastGeneric ✔️
Arrière-plan ToastGeneric ✔️
Protocole ToastGeneric ✔️ ✔️
Modèles hérités ✔️

Pour les applications empaquetées, envoyez simplement des notifications toast comme une application UWP. Lorsque l’utilisateur clique sur votre toast, votre application est lancée en ligne de commande avec les arguments de lancement que vous avez spécifiés dans le toast.

Pour les applications non empaquetées, configurez l’AUMID afin que vous puissiez envoyer des toasts, puis spécifier un CLSID sur votre raccourci. Il peut s’agir de n’importe quel GUID aléatoire. N’ajoutez pas le serveur/activateur COM. Vous ajoutez un CLSID COM « stub », ce qui entraîne la persistance de la notification par le Centre de notifications. Notez que vous pouvez utiliser uniquement des toasts d’activation de protocole, car le CLSID stub interrompt l’activation de toutes les autres activations toast. Par conséquent, vous devez mettre à jour votre application pour prendre en charge l’activation du protocole et que le protocole du toast active votre propre application.

Ressources