Systray

Résolu
cs_pcvesoul Messages postés 123 Date d'inscription vendredi 21 janvier 2005 Statut Membre Dernière intervention 25 juillet 2007 - 5 sept. 2005 à 12:25
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 - 5 sept. 2005 à 14:40
Bonjour.

Comment faire clignotter un élément de la systray (par exemple le nom de la feuille ou je me trouve) en vb.

Merci par avance.

5 réponses

PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
5 sept. 2005 à 14:40
umm...
à mon avis, ouvrir la fenêtre en question, mais en réduit (donc dans la barre des tâches) et la faire clignoter 4 5 secondes attirera bien plus l'attention que le systray.
j'ai des applis avec le systray qui s'anime, je ne m'en aperçois que si j'ai les yeux rivés dessus.
en plus, si par exemple tu fais apparaître une info-bulle pour dire qu'intel vient d'envoyer un message, çà oblige l'utilisateur à cliquer sur cette bulle pour la fermer (ou attendre), cliquer sur le tray, chercher dans le menu pour enfin arriver à la fenêtre en question (sans parler du fait que tu dois gérer qui a envoyer le message, + le fait qu'il peut y avoir plusieurs messages à la fois).
tandis que là, la fenêtre est prête, un seul click la déploie et c'est déjà la bonne.

je vois à peu près ce que tu veux, mais çà me semble peu ergonomique.
tu peux par contre cumuler les 2, genre msn. la fenêtre en réduite, + une petite fenêtre d'info qui prévient sans géner...
il y a des sources à ce sujet.

ps : pense à valider si la réponse te convient
PCPT
3
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
5 sept. 2005 à 12:50
pour faire clignoter ta fenêtre dans la barre des tâches, utilise un timer et c'est :

'Déclaration api flash de la fenetre
Private Declare Function FlashWindow Lib "user32" (ByVal hwnd As Long, ByVal bInvert As Long) As Long
Const Invert = 1

mais il n'y a aucun rapport avec le systray. peut-être ai-je mal compris...
PCPT
0
cs_pcvesoul Messages postés 123 Date d'inscription vendredi 21 janvier 2005 Statut Membre Dernière intervention 25 juillet 2007 1
5 sept. 2005 à 13:10
Non je voulais dire dans la barre de tache.

Et apres, comment je fais ?

Merci d'avance.
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
5 sept. 2005 à 13:18
bah tu mets un timer1 à False, intervalle 800 (par exemple), qui contient ce code :

Private Sub Timer1_Timer()
Static Sec As Integer
Sec = Sec + 1 If Sec 10 Then Sec 0: Timer1.Enabled = False: Me.WindowState = 0
FlashWindow Me.hwnd, Invert
End Sub

et un Command1 qui contient ce code :

Private Sub Command1_Click()
Me.WindowState = 1 If Timer1.Enabled False Then Timer1.Enabled True Else Timer1.Enabled = False
End Sub

tu cliques et tu apprécies son auteur, source 8546

PCPT
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_pcvesoul Messages postés 123 Date d'inscription vendredi 21 janvier 2005 Statut Membre Dernière intervention 25 juillet 2007 1
5 sept. 2005 à 14:27
En fait je pense qu'effectivement le systray serait plus aapté. Voici mon problème au complet :

J'ai plusieurs personnes utiisant le même programme et, depuis le menu, ils peuvent s'envoyer des messages l'un l'autre.

Je souhaiterai que lorsque l'un d'eux reçoit un message, il soit averti, même lorsqu'il est dans une feuille.

Afficher un icone dans le systray, avec :

- Clic gauche : lecture du message
- Clic droit : fermeture de l'icone

serait formidable. Mais je n'ai pas trouvé de code opérationnel ?

N'est-ce pas trop long à expliquer ?

Merci d'avance.
0
Rejoignez-nous