SAVOIR À QUEL PROGRAMME APPARTIENT UNE ICONE DE LA ZONE DE NOTIFICATION ("TRAY")

cs_eldim Messages postés 956 Date d'inscription lundi 30 mai 2005 Statut Membre Dernière intervention 21 août 2014 - 27 févr. 2006 à 10:27
dhumeau Messages postés 4 Date d'inscription vendredi 5 janvier 2007 Statut Membre Dernière intervention 30 septembre 2010 - 30 sept. 2010 à 14:37
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/36280-savoir-a-quel-programme-appartient-une-icone-de-la-zone-de-notification-tray-et-lister-les-icones

dhumeau Messages postés 4 Date d'inscription vendredi 5 janvier 2007 Statut Membre Dernière intervention 30 septembre 2010
30 sept. 2010 à 14: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 ?
werdDomain Messages postés 60 Date d'inscription lundi 22 octobre 2007 Statut Membre Dernière intervention 1 novembre 2011
12 juil. 2009 à 00:29
je vais regarder cela se soir
Je suis impatien de voir les changements :)
Merci
^^
kouki1000 Messages postés 108 Date d'inscription dimanche 8 février 2009 Statut Membre Dernière intervention 5 novembre 2010
11 juil. 2009 à 18:53
Dommage que la systray fait partie d'explorer.exe ...
ShareVB Messages postés 2676 Date d'inscription vendredi 28 juin 2002 Statut Membre Dernière intervention 13 janvier 2016 26
20 janv. 2008 à 11:40
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
werdDomain Messages postés 60 Date d'inscription lundi 22 octobre 2007 Statut Membre Dernière intervention 1 novembre 2011
4 janv. 2008 à 12:40
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
werdDomain Messages postés 60 Date d'inscription lundi 22 octobre 2007 Statut Membre Dernière intervention 1 novembre 2011
4 janv. 2008 à 08:31
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)
ShareVB Messages postés 2676 Date d'inscription vendredi 28 juin 2002 Statut Membre Dernière intervention 13 janvier 2016 26
30 déc. 2007 à 21:29
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
werdDomain Messages postés 60 Date d'inscription lundi 22 octobre 2007 Statut Membre Dernière intervention 1 novembre 2011
23 déc. 2007 à 09:43
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
werdDomain Messages postés 60 Date d'inscription lundi 22 octobre 2007 Statut Membre Dernière intervention 1 novembre 2011
23 déc. 2007 à 04:05
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)
ShareVB Messages postés 2676 Date d'inscription vendredi 28 juin 2002 Statut Membre Dernière intervention 13 janvier 2016 26
22 déc. 2007 à 12:33
salut tout le monde,

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

ShareVB
werdDomain Messages postés 60 Date d'inscription lundi 22 octobre 2007 Statut Membre Dernière intervention 1 novembre 2011
22 déc. 2007 à 08:54
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
ShareVB Messages postés 2676 Date d'inscription vendredi 28 juin 2002 Statut Membre Dernière intervention 13 janvier 2016 26
26 juil. 2007 à 22:46
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
djihell Messages postés 3 Date d'inscription jeudi 19 janvier 2006 Statut Membre Dernière intervention 23 novembre 2007
26 juil. 2007 à 10:13
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
Gammacronosios Messages postés 3 Date d'inscription lundi 25 octobre 2004 Statut Membre Dernière intervention 21 février 2007
21 févr. 2007 à 12:05
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 !
cs_eldim Messages postés 956 Date d'inscription lundi 30 mai 2005 Statut Membre Dernière intervention 21 août 2014 1
27 févr. 2006 à 10:27
Excellent et très util