Message sortant du system tray avec prise en charge de la taille et position de la barre des tâches

Soyez le premier à donner votre avis sur cette source.

Vue 6 922 fois - Téléchargée 1 186 fois

Description

Procédure permettant de faire sortir du system tray (zone de notification) une feuille (form), de la laisser afficher au premier plan X secondes puis de la masquer automatiquement.

En outre, une seconde procédure est prévue pour masquer la feuille, à utiliser lors d'un clic sur la feuille par exemple ;o)

L'affichage de la feuille tiend compte de la taille du system tray et de sa position aucun contrôle supplémentaire n'est necessaire.

Cette source s'inspire des deux sources suivantes : http://www.vbfrance.com/code.aspx?id=22589 et http://www.vbfrance.com/code.aspx?ID=2558

L'avantage vient surtout de la facilité d'implémentation des messages.

Source / Exemple :


'==========================================================================================
'  Auteur : Mehdi GHEZAL
'  Version : 1.1
'  Nom du fichier : showSysTrayMessage.bas
'  Date de création : Mardi 14 septembre 2004
'  Date de dernière modification : Mercredi 15 septembre 2004
'
'  Explication :
'  =============
'
'  Procédure permettant de faire sortir du system tray (zone de notification)
'  une feuille (form), de la laisser afficher au premier plan X secondes
'  puis de la masquer automatiquement.
'
'  En outre, une seconde procédure est prévue pour masquer la feuille, à utiliser
'  lors d'un clic sur la feuille par exemple ;o)
'
'  L'affichage de la feuille tiend compte de la taille du system tray et de sa position
'  aucun contrôle supplémentaire n'est necessaire
'
'  Utilisation :
'  =============
'
'  Procédure : showSysTrayMessage(frmMessageParam As Form, showTimeInSecond As Integer)
'  Paramètre : frmMessageParam As Form => feuille à afficher au dessus du system tray
'  Paramètre : showTimeInSecond As Integer => durée d'affichage en secondes
'  Explication : Affiche la feuille
'
'  Procédure : hideSysTrayMessage()
'  Paramètre : Aucun
'  Explication : Masque la feuille précédement affichée
'
'  Notes de versions :
'  ==================
'
'  1.1  =>  * Ajout de la transparence (modification de la procédure
'             showSysTrayMessage et ajout de déclaration API)
'           * Correction du bug permettant de flooder l'affichage de message
'==========================================================================================

Conclusion :


Code complet et démonstration dans le ZIP.

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

vbmarh
Messages postés
61
Date d'inscription
dimanche 9 octobre 2005
Statut
Membre
Dernière intervention
30 novembre 2010
-
Salut es que l etiquette de notification tient la oû il faut sur les ecrans de grande taille
pctechweb
Messages postés
2
Date d'inscription
mercredi 20 septembre 2006
Statut
Membre
Dernière intervention
21 septembre 2006
-
Ah! et aussi... j'ai pas fait mais c en route. Pour ceux qui désirent éviter le probl quand y'a plein d'applications qui font de ces fenêtres en même temps y'a le "mutex" tel que décrit là

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/WinMessenger/winmessenger/overview/toast.asp

Pour coordonner un système de "toast pop up" de ce genre.

J'ai pas fouillé si ça a déjà été posté ici mais bon. J'viens de voir que le code date de 2004 alors bien possible que tout ça soit déjà là qq part.
pctechweb
Messages postés
2
Date d'inscription
mercredi 20 septembre 2006
Statut
Membre
Dernière intervention
21 septembre 2006
-
Bon boulot 9 (et des poussières). Quelques petits changements font que ça fonctionne sous win98 (ben oui j'ai des vieilles machines aussi). Win98 retourne pas 0 pour top, left donc tester ...

If taskBar.coordonnees.Left < 1 And taskBar.coordonnees.Top < 1 Then blablabla

et ensuite win98 gère pas la transparence qui a été ajoutée mais génère une erreur 453 donc au début de la sub showSysTrayMessage(....) placer on error goto errortrap. À la fin entre le Call SetTimer(.....) et le end sub placer

Exit Sub

errortrap:
If Err.Number = 453 Then
Resume Next
Else
Err.Raise Err.Number
End If
MadM@tt
Messages postés
2215
Date d'inscription
mardi 11 novembre 2003
Statut
Membre
Dernière intervention
16 juillet 2009
-
Ouais soyons novateurs ! il faut inventer un nouveau système, tiens je crois que j'ai une idée...
cs_azerty25
Messages postés
1115
Date d'inscription
jeudi 19 décembre 2002
Statut
Membre
Dernière intervention
6 mai 2007
-
A force d'avoir pleins de prog qui font les mêmes messages, on aura plus de place pour les mettre ou on en vera qu'un sur 40 s'ils se superposent :p
Sinon, c'est bien, bon boulo ;)

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.