|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Membre habitué
![]() |
Bonjour,
Je dois appliquer une modification dans une application pour que, lorsqu'un événement précis survient, l'icône de l'application clignote dans la barre des tâches. Notre application tournant en tâche de fond par rapport à une autre application, le but est de prévenir l'utilisateur qu'une action est à réaliser d'urgence dans la nôtre. J'ai chipoté un moment avec la bibliothèque FlashWindow, puis avec FlashWindowEx. Mais le résultat n'est pas satisfaisant. Puis, en explorant les ressource de developpez, je suis tombé sur le tutoriel de Arkham46 : http://www.developpez.net/forums/d59...ation-systray/ Celui-ci répond parfaitement à ce que je dois faire. Je peux programmer une icône clignotante dans le systray. Je peux même lui affecter une infobulle. Tout est nickel. Mais j'ai quand même un soucis et je ne vois pas comment le régler : Dans le systray, que ce soit sous XP ou sous Win7, l'icône créée est décalée à chaque clignotement. Sous Win7, ce n'est pas vraiment un problème parce que le systray est dans un cadre indépendant (C'est gênant, mais ce n'est pas un problème), mais sous XP, cela provoque une réduction progressive de ma barre des tâches. Ce qui est un effet indésiré. En explorant les méthodes de la classe créée par Arkham46, j'ai essayé de supprimer l'icône, après chaque clignotement, dans le systray à l'aide des méthodes : HideSysTray HideFormInTaskBar Quelque chose m'échappe ou je ne place pas mon appel de fonction correctement, mais je ne parviens pas à arrêter ce phénomène intempestif. Voici le timer que j'ai programmé dans mon formulaire utilisant la classe de Arkham : Code :
Merci. |
||
|
|
00
|
|
|
#2 | ||
![]() ![]() Maintenance données produits Inscription : décembre 2005 Messages : 3 939 ![]() |
Bonjour,
Pour supprimer l'icône sans supprimer l'item de la zone de notifications, j'ai ajouté cette fonction : Code :
|
||
|
|
00
|
|
|
#3 |
|
Membre habitué
![]() |
Bonjour,
Oui, ça, c'est ce que j'ai compris aussi. Le soucis, c'est que, tant que le clignotement est actif, on a des "capsules" d'icônes blanches qui se multiplient à l'envi dans la zone de notification. Ce que je cherche à faire, donc, c'est que, à la fin d'un cycle de clignotement, l'icône soit complètement supprimée de la zone de notification. Et c'est là que je coince. Merci pour ta réponse. PS : Le HideSystray est la procédure événementielle sur fermeture du formulaire FrmSystray. Je pensais donc que l'icône serait supprimée à ce moment. Mais ce n'est pas le cas chez moi. |
|
|
00
|
|
|
#4 |
![]() ![]() Maintenance données produits Inscription : décembre 2005 Messages : 3 939 ![]() |
Bonsoir,
Peut-être que la différence est que moi je ne fais pas clignoter en faisant de multiples ouvertures/fermetures. Je n'ouvre qu'une fois le formulaire contenant de code pour l'icône de la zone de notifications. Ensuite je me contente de mettre/enlever l'icône à afficher. Je joins mon exemple au cas où ... bd_systray_clignt.zip A+ |
|
|
00
|
|
|
#5 |
|
Membre habitué
![]() |
Bonsoir,
Je dois dire que même quand tu en as parlé plus tôt, ça n'a pas tilté dans ma tête. Juste ajouter l'icône et la faire clignoter par un affichage/non affichage, c'est en te relisant j'ai compris ce que tu voulais dire. Je vais essayer demain cette idée. Merci de ton aide. |
|
|
00
|
|
|
#6 |
|
Membre habitué
![]() |
Bonjour,
@Led : La méthode que tu préconises est effectivement celle qu'il faut utiliser pour résoudre mon soucis. Je l'ai testée hier soir, elle fonctionne nickel. Merci mille fois de ton aide. Geache |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com