dhumeau
Messages postés4Date d'inscriptionvendredi 5 janvier 2007StatutMembreDernière intervention30 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és60Date d'inscriptionlundi 22 octobre 2007StatutMembreDerniè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és108Date d'inscriptiondimanche 8 février 2009StatutMembreDernière intervention 5 novembre 2010 11 juil. 2009 à 18:53
Dommage que la systray fait partie d'explorer.exe ...
ShareVB
Messages postés2676Date d'inscriptionvendredi 28 juin 2002StatutMembreDernière intervention13 janvier 201626 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és60Date d'inscriptionlundi 22 octobre 2007StatutMembreDerniè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és60Date d'inscriptionlundi 22 octobre 2007StatutMembreDerniè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és2676Date d'inscriptionvendredi 28 juin 2002StatutMembreDernière intervention13 janvier 201626 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és60Date d'inscriptionlundi 22 octobre 2007StatutMembreDerniè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
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és60Date d'inscriptionlundi 22 octobre 2007StatutMembreDerniè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és2676Date d'inscriptionvendredi 28 juin 2002StatutMembreDernière intervention13 janvier 201626 22 déc. 2007 à 12:33
werdDomain
Messages postés60Date d'inscriptionlundi 22 octobre 2007StatutMembreDerniè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és2676Date d'inscriptionvendredi 28 juin 2002StatutMembreDernière intervention13 janvier 201626 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és3Date d'inscriptionjeudi 19 janvier 2006StatutMembreDernière intervention23 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és3Date d'inscriptionlundi 25 octobre 2004StatutMembreDernière intervention21 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és956Date d'inscriptionlundi 30 mai 2005StatutMembreDernière intervention21 août 20141 27 févr. 2006 à 10:27
30 sept. 2010 à 14:37
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 ?
12 juil. 2009 à 00:29
Je suis impatien de voir les changements :)
Merci
^^
11 juil. 2009 à 18:53
20 janv. 2008 à 11:40
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
4 janv. 2008 à 12:40
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
4 janv. 2008 à 08:31
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)
30 déc. 2007 à 21:29
Voici une nouvelle version plus "orientée objet" de ce code...l'ancienne version est dans trayold.NET...
Bonne année 2008
ShareVB
23 déc. 2007 à 09:43
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
23 déc. 2007 à 04:05
(c'est pas ma machine le probleme je vien de tout re-instaler)
22 déc. 2007 à 12:33
Voici le lien vers la version VB6 : http://www.vbfrance.com/code.aspx?ID=24852
ShareVB
22 déc. 2007 à 08:54
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
26 juil. 2007 à 22:46
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
26 juil. 2007 à 10:13
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
21 févr. 2007 à 12:05
1) Tu es balaise
2) Tu es balaise
3) Merci beaucoup !
4) 10/10 !!!!
5) Excelent !
27 févr. 2006 à 10:27