Principe de fonctionnement des toasts Windows 11
Depuis la mise à jour 22H2, Windows 11 utilise le même système de toast notifications que les versions précédentes, mais avec une interface centrée et des actions rapides intégrées. Le moteur repose sur le WinRT API Windows.UI.Notifications, qui attend un fichier XML décrivant le contenu, les images et les boutons. Chaque toast doit être associé à une AppUserModelID afin que le système puisse gérer les autorisations et le regroupement des notifications.
Mise en œuvre avec le module PowerShell BurntToast
Le module BurntToast (version 0.9.5 au moment de la rédaction) encapsule la génération d’XML et l’appel à ToastNotificationManager. Sous PowerShell 5.1 ou PowerShell 7, l’instruction suivante crée une alerte simple :
Import-Module BurntToast
New-BurntToastNotification -Text "Rappel", "Prenez votre pause" -AppLogo "C:\Images\logo.png" -Sound "Default"Le paramètre -Text accepte jusqu’à deux lignes, tandis que -AppLogo injecte une image 48 × 48 px. BurntToast traduit ces arguments en XML conforme au schéma ToastGeneric, puis utilise la classe COM ToastNotification pour l’envoi.
Contraintes techniques et limites
Le système impose trois restrictions majeures : (1) l’AppUserModelID doit être déclaré dans le registre ou fourni via le paramètre -AppId; sans cela, la notification apparaît sous le nom « Windows Shell Host ». (2) Les toasts ne sont affichés que si le processus possède un foreground window ou si l’utilisateur a autorisé les notifications de l’application dans les paramètres de confidentialité. (3) Les actions de bouton sont limitées à l’exécution d’une commande PowerShell.exe -File ou à l’ouverture d’une URL, ce qui empêche l’appel direct à des API tierces.
Intégration dans l’automatisation quotidienne
En combinant le planificateur de tâches Windows avec BurntToast, on peut déclencher des rappels à intervalles précis. Par exemple, un déclencheur quotidien à 09 h 00 exécutant le script ci‑dessus crée un rappel de prise de médicaments. Le script peut également récupérer des données dynamiques via Get-Content ou des API REST, puis les injecter dans le texte du toast, offrant ainsi une solution de notification entièrement personnalisable sans installer de logiciel tiers.