2015-03-11 1 views
0

J'ai une application .NET qui est réduite dans la zone de notification et qui envoie des notifications lorsque certaines actions ont lieu. Lorsque l'utilisateur n'est pas connecté ou que l'écran est verrouillé, il est évident que ces notifications sont mises en file d'attente, de sorte que la prochaine fois que l'utilisateur se connecte, toutes les notifications expirées sont présentées de manière séquentielle. Ce que je voudrais faire est d'empêcher les notifications d'être présentées si l'utilisateur ne peut pas les voir (écran déconnecté ou verrouillé). Ou, si c'est plus facile, configurez-le pour que l'utilisateur ne voie pas toutes les notifications qu'il a manqué lors de la déconnexion. Vous cherchez les meilleures pratiques pour un tel cas. Merci.Comment empêcher les notifications de plateau de se mettre en file d'attente lorsqu'elles ne sont pas visibles

Répondre

1

Vous pouvez utiliser un SessionSwitchEventHandler pour détecter si le poste de travail est verrouillé.

Vous pouvez utiliser la classe WMI Win32_LogonSession pour interroger toutes les connexions interactives sur le système. Vous pouvez ensuite décider si vous souhaitez afficher la notification ou non. Puis, s'il s'agit vraiment d'une application et non d'un service, vous ne pouvez pas vraiment vérifier si un utilisateur est connecté interactivement alors qu'il n'y en a pas puisque les processus applicatifs appartiennent à des utilisateurs connectés de manière interactive (lorsqu'ils se déconnectent, tous les processus qu'ils possèdent sont tués)