Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

SAVOIR À QUEL PROGRAMME APPARTIENT UNE ICONE DE LA ZONE DE NOTIFICATION ("TRAY") ET LISTER LES ICONES


Information sur la source

Catégorie :Système Classé sous : tray, systray, icône, barredestâches, notification Niveau : Expert Date de création : 25/07/2004 Date de mise à jour : 26/02/2006 22:54:45 Vu / téléchargé: 7 645 / 683

Note :
9 / 10 - par 1 personne
9,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (13)
Ajouter un commentaire et/ou une note


Description

Ce code permet de lister les icones du "Tray" à côté de l'horloge et de savoir à quel programme une icone appartient...

Pour ME/2000/XP :
C'est une interprétation des données systèmes de cette barre d'outils (le Tray a la classe "ToolbarWindow32") que l'on peut obtenir avec le message TB_GETBUTTON...

Pour 9x/NT :
C'est une interprétation de la structure pointée par le pointeur (lol) que l'on obtient avec GetWindowLong(index=0)

Ce code doit fonctionner sous 9x/ME/NT/2000/XP... Il a été testé sous 98/NT4/2000/2003/XP/Vista...

sous 9x, la dll jointe dans le zip est nécessaire pour transférer l'ImageList du Tray dans notre processus...
 

Conclusion

Ce code fonctionne même lorsque l'option "Masquer les icones inactives" est activée (XP)
 

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

Historique

06 août 2004 22:17:26 :
Prise en charge de 9x/ME/2000 Renvoi du nom de processus par les apis
20 décembre 2004 16:11:10 :
Prb d'icônes
30 décembre 2004 17:51:40 :
Ajout de l'affichage du menu contextuel
30 décembre 2004 22:07:08 :
Correction de bug Ajout de l'affichage des menus contextuels
26 février 2006 22:54:45 :
prise en charge de NT4 et Vista

Commentaires et avis

signaler à un administrateur
Commentaire de jmlucienvb le 26/07/2004 13:07:49

Ne marche pas sous 2000....

signaler à un administrateur
Commentaire de phtribaudeau le 30/07/2004 14:42:55

ne marche pas sous Wint NT 4 non plus : plante sur l'instruction UBound(ticons) au début du forms. Visiblement, la fonction GetTrayIcons ne fonctionne pas...
A revoir donc.

A++

signaler à un administrateur
Commentaire de ShareVB le 01/08/2004 16:57:39

salut

ce code sera bientôt mis à jour pour prendre en compte 9x/ME/2000... cela vient de  GethWndTray qui est différent pour 2000 :

Private Function GethWndTray() As Long
Dim hwnd As Long 'handle
'on descend dans la hiérarchie parent-enfant
hwnd = FindWindow("Shell_TrayWnd", vbNullString)
hwnd = FindWindowEx(hwnd, 0&, "TrayNotifyWnd", vbNullString)
'jusqu'à obtenir le handle de la barre d'outils faisant de tray
GethWndTray = FindWindowEx(hwnd, 0&, "ToolbarWindow32", vbNullString)
End Function

sous NT4, je ne sais pas (et je ne peux pas tester)

sous 9x, c totalement différent... (NT4 c peut etre pareil)

ShareVB

signaler à un administrateur
Commentaire de MadM@tt le 05/08/2004 23:04:01

C'est puissant tout ça !!

signaler à un administrateur
Commentaire de ShareVB le 30/12/2004 20:11:53

salut,

pour ceux que ca intéresse, la source de la dll est ici :
http://www.cppfrance.com/code.aspx?ID=28514

ShareVB

signaler à un administrateur
Commentaire de scelw le 21/05/2005 21:44:01

je suis débutant et j'ai un peu de mal... J'aimerais ajouter une fonction (dans le premier module) pour pouvoir cacher/dévoiler l'icône de n'importe quelle application présente dans le systray, mais je ne sais pas exactement comment faire. J'ai essayé de faire des trucs qui ressemblaient grossomodo à "SendMessage hIcon, TB_HIDEBUTTON" mais ça ne marche pas... :(
Pourrais-tu m'aider à écrire cette fonction (qui ne doit pas faire plus d'une ou deux lignes, d'ailleurs)?

signaler à un administrateur
Commentaire de ShareVB le 26/02/2006 23:01:15

salut,

corrigé pour fonctionner sur NT4, 98, 2000, 2003, XP, Vista...

ShareVB

signaler à un administrateur
Commentaire de MadM@tt le 26/02/2006 23:59:00

Meme sous Vista lol, on peut dire que tu prévois.
En tout cas c'est vraiment exceptionnel tout ça à mes yeux !

signaler à un administrateur
Commentaire de VBGenesis le 04/05/2006 18:40:21

Salut à tous j'aimerais savoir comment on peut faire pour que l'icone de son appli apparaisse dans à coté de l'horloge?

signaler à un administrateur
Commentaire de MadM@tt le 20/08/2006 02:14:59

Lorsque je veux appeler les fonctions de ta dll perso, il y a une erreur me disant qu'il ne trouve pas le fichier InterprocessImageList.dll
J'ai bien mis la dll dans le repertoire de mon appli pourtant. Par contre j'ai voulu mettre ton code dans un ocx, c'est peut etre la que ça foire ?

signaler à un administrateur
Commentaire de MadM@tt le 20/08/2006 02:17:40

Arf désolé, j'avais pas relancé le projet... J'étais à 2 doigts d'abandonner
ça marche nickel ;)

signaler à un administrateur
Commentaire de werdDomain le 20/12/2007 10:52:48

Salut, Ton code est #1! exactement ce que je cherchais.
a ma grande deception en vb6 :( j'utilise vb.net et je ne connais pas bien les type et la diference de syntax de vb6. De plus je ne dispose pas de visual studio 6... Jai bien observer des similitude mais je suis bloquer a plusieurs points dans la traduction de vb6 à vb.net.
J'ai une application qui remplace la bare des tache mais je doit utiliser un "MASK" transparent pour pouvoir utiliser les icons du "tray".

Allors voila, jai besoin d'aide. J'ai pas l'habitude de demender la charitée mais je fait une exception.Une fois complet je publirais mon project sur vbfrance.com

Si il y a quelqun qui connais bien vb6 et vb.net et qui veut bien traduire ce que jai besoins (surtout ce qui ce trouve dans common.bas)

jai seulement besoin  de la liste des icones et son hWnd.

ou si qq1 a vb6 et qui veut bien me compiler un DLL contenant les function/sub/type(structure) qui suporte COM si posible

merci je laisse mon e-mail pour me rejoindre
retirez l'antispam("antispam-")
antispam-rnsoft_projects@hotmail.com

signaler à un administrateur
Commentaire de ShareVB le 22/12/2007 12:35:56

salut tout le monde,

Voici le lien vers la version VB.Net : http://www.vbfrance.com/code.aspx?ID=36280

werdDomain : je ne me rappelé même plus avoir fait une version VB.Net...je vais d'ailleurs la transformer en vrai POO...

ShareVB

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

Systray Affichage d'un pourcentage d'avancement [ par thtdlx2 ] Bonjour,J'ai cherché sur le site un moyen d'afficher dans le Systray une icône représentant le pourcentage d'avancement d'une action en temps réel (mi problème de systray [ par marcod59 ] Bonjour,J'ai un programme systray qui fonctionne bien sur 2 programmes. J'ai commencé une autre application, et j'ai un problème avec ce même systray. Faire disparaitre icone du tray lorsque programme quitté [ par seozus ] Jai une application utilisant un systray icon. Mais lorsque je ferme celui ci, l'icone reste dans le systray, je dois passer ma souris par dessus pour Lancer le systray dans une application vb [ par necrodede ] SalutJe voudrai savoir comment lancer le systray dans un de mes prog Apparemment la il depend d explorer et j ai pas de control dessus je peut pas le Pb avec ShowInTaskbar [ par olive73 ] Bonjour,voila mon petit probleme.Je souhaite reduire mon appli dans le systray, sans l'afficher dans la barre des taches.Quand l'appli n'est plus redu Tray Icon de Service NT sous Terminal Server [ par rvblog ] Bonjour,quelqu'un saurait-il pourquoi :- lorsqu'un service NT (sur un Win 2003 Server), possédant sa Tray Icon, utilisant pour sa session, u Systray à plusieurs valeurs [ par Psykos7 ] Bonjour, je souhaite pouvoir afficher un pourcentage dans le systray, mais je me vois mal creer 101 images (0% à 100%)Y aurait-il un moyen d'ecri Programme systeme tray [ par jonathan_valot ] Bonjour à tous, voila je développe un programme en VB, et j'aimerai qu'il n'apparaisse que dans le système tray (les icone à droite de la barre des tâ Faire un Minizing tray [VB 6.0] [ par spike911 ] Comment je peu faire un  "minizing tray" avec un form? (Réduire un form en petit icon dans le coin droit de la bar des tâche.)Merc Créer Application qui se lance dans la zone de notification [ par AleiZ ] Bonjour,Je voudrais savoir comment je peux faire pour qu'un prog codé en VB (j'utilise Microsoft Visual Studio), se lance en minimisé dans l


Nos sponsors

Sondage...

CalendriCode

Janvier 2009
LMMJVSD
   1234
567891011
12131415161718
19202122232425
262728293031 

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,484 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.