Icône de notification d'un service Windows ne s'affiche pas sous Vista

[Résolu]
Signaler
Messages postés
6
Date d'inscription
vendredi 17 février 2006
Statut
Membre
Dernière intervention
16 juillet 2009
-
Messages postés
6
Date d'inscription
vendredi 17 février 2006
Statut
Membre
Dernière intervention
16 juillet 2009
-
JERI
Bonjour,

J'ai développé en C# avec VS 2005 un service Windows pour communiquer avec des appareils. Mon service affiche une icône de notification quand il démarre et la masque quand il s'arrête javascript:Insert_Emoticon('/imgs2/smile_cool.gif');.

J'ai configuré mon service, grâce à des infos trouvées sur CodeS-SourceS javascript:Insert_Emoticon('/imgs2/smile_tongue.gif');, pour que l'option "Autoriser le service à interagir avec le bureau" soit activée à l'installation de mon service.

Problème : mon icône apparaît bien quand mon service démarre sous Windows XP SP2. Elle n'apparaît pas sous Windows Vista (version Pro) javascript:Insert_Emoticon('/imgs2/smile_dissapprove.gif');. Quelqu'un a t'il une solution ?

Problème annexe : J'ai parfois besoin de configurer mon service pour qu'il se connecte sous un compte réseau (notamment quand il a des tâches d'impression à réaliser sur une imprimante réseau). Dans ce cas, je ne peux pas "Autoriser le service à interagir avec le bureau", donc mon icône de notification n'apparaît pas au démarrage de mon service javascript:Insert_Emoticon('/imgs2/smile_dissapprove.gif');. Quelqu'un connaît-il une parade ?

Merci de votre aide.

JERI

2 réponses

Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
93
Salut,

Le problème est que l'interaction directe entre le service et le bureau n'est pas en elle même un bon moyen de procéder.
Il vaut mieux qu'une application cliente lancée par l'utilisateur (ou ouverte pour lui à l'ouverture de session peu importe) communique avec le serveur au travers d'une communication (socket, pipes, remoting, etc)
De ce que je sais l'interaction avec le bureau posait déjà problème sous XP avec le Fast User Switching, et en environnement Terminal Server je me demande ce que ça pouvait donner.

Sauf erreur, sous les versions pré-Vista, les services sont executé dans la session 0, qui est aussi celle du premier utilisateur s'authentifiant sur la machine. C'est ce qui devait poser problème (à vérifier) sous XP avec l'arrivée du FUS, car l'utilisateur interactif n'était pas forcément sur la session 0.
Sous Vista (et sans doute Server 2008), la session 0 ne sera jamais une session interactive : elle est réservée aux services et aux processus système.

Le document Impact of Session 0 Isolation on Services and Drivers in Windows Vista devrait t'en apprendre plus que moi et te donner quelques débuts de pistes.

Bon courage.

/*
coq
MVP Visual C#
CoqBlog
*/
Messages postés
6
Date d'inscription
vendredi 17 février 2006
Statut
Membre
Dernière intervention
16 juillet 2009

Bonjour,

Merci beaucoup pour la réponse. Je vais trouver une autre technologie pour qu'il soit manifeste que mon service est démarré.

Christophe.