begin process at 2012 02 13 02:28:47
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Système

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

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


 Information sur la source

Note :
10 / 10 - par 3 personnes
10,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Système Source .NET ( DotNet ) Classé sous :tray, systray, icône, barredestâches, notification Niveau :Expert Date de création :26/02/2006 Date de mise à jour :14/01/2008 22:56:47 Vu / téléchargé :10 762 / 800

Auteur : ShareVB

Ecrire un message privé
Site perso
Ce membre participe au partage de revenus publicitaires
Commentaire sur cette source (15)
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

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Historique

26 février 2006 23:06:26 :
oubli d'une dll
30 décembre 2007 21:26:43 :
Mise en forme "objet" du code
14 janvier 2008 22:56:49 :
correction du fichier projet correction d'une fuite mémoire de lecture des icônes

 Sources du même auteur

Source avec Zip Source .NET (Dotnet) CLONE/FORK DES FLUX DE LA CONSOLE : PERMETTRE LA REDIRECTION...
Source avec Zip Source .NET (Dotnet) DÉFRAGMENTER UN FICHIER
Source avec Zip Source .NET (Dotnet) ECRAN DE VEILLE : DÉTECTER LE LANCEMENT/DÉCLENCHER/EMPÊCHER
Source avec Zip Source .NET (Dotnet) AUTORUN : DÉTECTION DU LANCEMENT DE L'AUTORUN, DÉTECTION DU ...
Source avec Zip Source .NET (Dotnet) NSLOOKUP EN VB.NET OU COMMENT FAIRE UNE REQÛETE DNS EN PRÉCI...

 Sources de la même categorie

Source avec Zip Source avec une capture AUTORISER/REFUSER L'EXECUTION DE PROCESSUS par pierreh51
Source avec Zip Source .NET (Dotnet) CLONE/FORK DES FLUX DE LA CONSOLE : PERMETTRE LA REDIRECTION... par ShareVB
Source avec Zip Source .NET (Dotnet) DÉFRAGMENTER UN FICHIER par ShareVB
Source avec Zip Source .NET (Dotnet) ECRAN DE VEILLE : DÉTECTER LE LANCEMENT/DÉCLENCHER/EMPÊCHER par ShareVB
Source avec Zip Source avec une capture DESACTIVER / ACTIVER LES MISES EN VEILLES PC par Arsena

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture SYSTRAY + BALLOON - VARIANTE AVEC TEXTE DANS L'ICÔNE par jack
Source avec Zip SYSTRAY: VIRER N'IMPORTE QUELLE ICÔNE par Dragonmaster
Source avec Zip Source avec une capture RÉCUPÉRER LES ICONES DU SYSTRAY DANS VOTRE PROGRAMME : OCX S... par MadM@tt
Source avec Zip Source .NET (Dotnet) ROUTEUR DE FICHIERS EN TRAY ICON par marmous
Source avec Zip SAVOIR À QUEL PROGRAMME APPARTIENT UNE ICONE DE LA ZONE DE N... par ShareVB

Commentaires et avis

Commentaire de eldim le 27/02/2006 10:27:10

Excellent et très util

Commentaire de Gammacronosios le 21/02/2007 12:05:13

Olalalalalalala ! Ca fait des années que je cherche ça !
1) Tu es balaise
2) Tu es balaise
3) Merci beaucoup !
4) 10/10 !!!!
5) Excelent !

Commentaire de djihell le 26/07/2007 10:13:31

Salut à tous et bravo pour ce chti prg
mais comme je suis débutant en VB NET, j'ai oune grosse problème.
J'ai générer la solution, placer mon .EXE et ses DLL dans un autre PC qui n'a pas VB Net
Et là Ho malheur !!! message d'erreur : une exception non gérée s'est produite et bla bla bla etc...
je n'arrive pas à le faire fonctionner.
Est-ce quelqu'un pourrait m'aider SVP .. OS Court !!!
Merci :) Dji-Hell

Commentaire de ShareVB le 26/07/2007 22:46:16

salut,

d'abord as-tu installé le framework 2.0 (et/ou 1.1, je me souviens plus avec quelle version j'ai compilé)

ensuite, le "bla bla bla" c'est le plus intéressant (en message privé)...

ShareVB

Commentaire de werdDomain le 22/12/2007 08:54:02 10/10

EXCELENT! WOW sa marche #1 sur xp :) (10/10)
juste un petit comm... en fesans la conversion en vb.net (8) 2 erreur de type... (explicit option on) le cast de shotr a integer n'est pas permi. utilisez ctype(Integer, Short) :
Dans modSystray_9x.vb:
remplacer : (line 118)
    If (ReadProcessMemory(hP, lpData, temp(0), dwCount * 4, 0)) Then

par:
    If (ReadProcessMemory(hP, lpData, CType(temp(0), Short), dwCount * 4, 0)) Then

ET

remplacer : (line 250)
    ReadProcessMemory(hProc, New IntPtr(tbut.dwData), Icons(x).hwnd, 36, ret)

par:
    ReadProcessMemory(hProc, New IntPtr(tbut.dwData), CType(Icons(x).hwnd, Short), 36, ret)

apart de sa super le code! :) jai rien a dire, de mon coter je vais eseyer de trouver commen avec SendMessage sender un double click a l'icone :D

MERCI ENCORE! :D

Commentaire de ShareVB le 22/12/2007 12:33:03

salut tout le monde,

Voici le lien vers la version VB6 : http://www.vbfrance.com/code.aspx?ID=24852

ShareVB

Commentaire de werdDomain le 23/12/2007 04:05:00

un autre petit comm... quand on Refresh souvent sa plante et on doit redemarer pour pouvoir l'utiliser encore... il n'y aurais pas un moyen de verifier sa? ( je fait une copy de la bare des tache, donc je doit L'Actualiser toutes les 3000 Ms
(c'est pas ma machine le probleme je vien de tout re-instaler)

Commentaire de werdDomain le 23/12/2007 09:43:48

bon bon une autre info de la source, est tres utile pour avoir les icones dans la bare des tache... mais si vous voulez avoir les modification vou devez re-demender la liste a chaque fois... mais avec la meime reference memoir(dans le boutton) allors vous devez garder ses valeurs en en les declarent dans le form ou le module ... allor dans la function GetTrayIcons_2KLater, qui ce trouve dans modListTray.vb

Dim hProc As Integer 'handle de Explorer.exe
    Dim hTray As Integer 'hWnd du tray
    Dim pid As Integer 'identifiant de Explorer.exe
    Dim ptrVM As IntPtr 'pointeur vers la zone mémoire pour TBBUTTON
    Dim ret As Integer 'valeur de retour
    Dim ptrTip As IntPtr 'pointeur vers une chaîne Unicode (Tip ou Path)
    Dim tbut As TBBUTTON 'les infos sur le bouton
    Dim TChar As Short 'contient un caractère unicode
    Dim x As Integer 'compteur
    Dim nIcons As Integer 'nombre d'icones dans le tray
    Dim Icons() As Tray 'tableau temporaire des icones dans le tray
    Dim lbut As Integer = System.Runtime.InteropServices.Marshal.SizeOf(tbut)
    Dim ptr As IntPtr 'pointeur


changer :
ptrVM = VirtualAllocEx(hProc, IntPtr.Zero, lbut, MEM_COMMIT, PAGE_READWRITE)

pour :
If ptrVM.ToInt32 = 0 Then ptrVM = VirtualAllocEx(hProc, IntPtr.Zero, lbut, MEM_COMMIT, PAGE_READWRITE)

et enlevez la section cleanup(de la function) pour l'appeler que quand vous aurez fini avec cette function, exemple dans l'evenement FormClosing

Cleanup:
        'on libère la mémoire allouée
        VirtualFreeEx(hProc, ptrVM, 0, MEM_RELEASE)
        'on ferme le handle de Explorer.exe
        CloseHandle(hProc)

Merci et bon code! :d

Commentaire de ShareVB le 30/12/2007 21:29:22

salut à tous,

Voici une nouvelle version plus "orientée objet" de ce code...l'ancienne version est dans trayold.NET...

Bonne année 2008

ShareVB

Commentaire de werdDomain le 04/01/2008 08:31:40

salut, j'obtien une erreur qui a raport a un debugage distant?il me demende l'acces au reseau, je l'autorise et il n'arive pas a ce connecter. jai du crée un nouveau project et ajouter manuelement les fichier... pourais tu verifier sa svp? :p

la nouvelle version regle-t-elle le probleme avec explorer.exe quand un grand nombre de "refresh" est effectuer (ex.:2 fois par secondes, pendant 6 heurs et les fenetres contenue dans le procesus explorer.exe sont affecter par je ne sait koi mais ce n'est pas normale :p)



Commentaire de werdDomain le 04/01/2008 12:40:09

finalement jai re-fait le test et la nouvelle version fait encore buger explorer quand on "refresh" la liste a plusieur reprise...

premierement jai ue une erreur "NullReferenceException" dans
la function HICON2StdPicture(ByVal hIcon As IntPtr) --> la valeur de
hIcon etais 0 c'est a dire invalide ... (je crois que une erreur dans  
explorer lui-meme en est la cause, il n'y aurais pas une façon
asynchrone(asynchronous) plus sur?)

*Le probleme persite apres la premiere erreur jusqu'a ce-que l'on quite
  windows ou redémarrer explorer.exe (kill+run). Meime si on Redemare  
  l'application en question, la meime erreur continue d'etre afficher.

si l'on ne redemare pas explorer, explorer ne fait pas juste "buger"
il declanche une Exception non gérée que voici:

Exception non gérée à 0x01af1000 dans explorer.exe : 0xC0000005: Violation d'accès lors de la lecture de l'emplacement 0x01af1000.

j'ai ecrit tout cela car ce probleme me frène a pouvoir l'utiliser dans une bare de tâche personaliser(que jai fait pour moi) allors si tu a une idée de comment coriger ce probleme, fait moi en part ici ;-) je visite cette page tout les 2 ou 3 jours.

merci d'avance

Commentaire de ShareVB le 20/01/2008 11:40:55

salut à tous,

le problème de violation d'accès dans Explorer.exe venait de la libération ou non libération "abusive" des handles d'icônes dans le processus...cela devrait être corrigé...

ShareVB

Commentaire de kouki1000 le 11/07/2009 18:53:27

Dommage que la systray fait partie d'explorer.exe ...

Commentaire de werdDomain le 12/07/2009 00:29:21

je vais regarder cela se soir
Je suis impatien de voir les changements :)
Merci
^^

Commentaire de dhumeau le 30/09/2010 14:37:37

Bonjour à tous,

Bravo pour ce code qui fonctionne parfaitement sous Windows XP.
Par contre sous Windows 7 impossible d'avoir le menu contextuel quand on fait un clic droit dans le tableau.

On dirait que c'est la fonction PostMessage qui n'est plus reconnue.
Est-ce que quelqu'un à une idée ?

 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 icone NotifyIcon (systray icone) [ par steph064 ] Là je n'arrive pas à trouver comment changer simplement l'icône de mon NotifyIcon lors d'un événement.J'ai déjà attribuer une icône à celui-ci mais lo Compilation avec icône personnalisée [ par js8bleu ] Bonjour à tous, j'aimerai que lorsque je compile mon programme vb, au lieu d'avoir comme icône, l'icône par défaut des programmes compilés de VB que menu + systray [ par Claiyah ] bonjour j'ai une application dans lequel j'ai mis un systray, quand clic sur un bouton elle devient invisible et apparait pres de l'horloge du systèm .Net - Récupérer l'icone d'un raccourçis *.lnk sans la fleche... [ par magicgus ] Bonjour, Ça y est je me suis enfin lancer dans le vb.net, j'ai mis le temps je sait mais je commence tout juste à démystifier la chose Je me trouve d afficher des messages dans la zone de notification sous forme de d'info bulle [ par toutoughou ] Bonjour; comment faire pour afficher des messages dans la zone de notification sous forme de d'info bulle ? quelqu'un a déjà un exemple ? Merci d'av Comparer 2 images (ImageList) [ par PrinceSilk ] Bonjour, Voilà toute l'histoire: Un de mes programmes stock un ensemble d'icônes dans une ImageList. Mais il se trouve (souvent même) que le même ic Récupéré une icone dans sa ressource ? [ par sth56500 ] Bonjour , je souhaite pouvoir "embarqué" une .ico (ressources)dans mon petit utilitaire afin qu'il puisse copier cette icône dans un fichier voulu. (


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), 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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,967 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales