Faire disparaitre icone du tray lorsque programme quitté

cs_seozus Messages postés 14 Date d'inscription samedi 25 septembre 2004 Statut Membre Dernière intervention 30 janvier 2006 - 29 janv. 2006 à 01:48
gallyhc Messages postés 386 Date d'inscription samedi 4 octobre 2008 Statut Membre Dernière intervention 19 février 2018 - 8 févr. 2006 à 21:49
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 qu'il disparaisse. Commend faire pour que lorsque le programme est fermé soit par le X en haut a droite ou une commande End, l'icone disparaisse lui aussi du systray, au lieu de tjr devoir le survoler ?

10 réponses

PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
29 janv. 2006 à 03:22
salut,

au Unload, tu dois lui envoyer un NIM_DELETE de mémoire...

++
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
29 janv. 2006 à 04:02
Salut
Si tu utilises la méthode standard, le démontage se fait comme ceci (dans Form_Unload)
' Démonte le mode SysTray
IconeT.cbSize = Len(IconeT)
IconeT.hWnd = Me.hWnd
IconeT.uID = 1&
Shell_NotifyIcon NIM_DELETE, IconeT

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage. (Socrate)
0
cs_seozus Messages postés 14 Date d'inscription samedi 25 septembre 2004 Statut Membre Dernière intervention 30 janvier 2006
30 janv. 2006 à 17:47
Le code ne fonctionne pas, peut être que je ne sais pas l'utiliser ... Je dois modifier IconeT par le nom de mon icone, jai essayé, mais je n'ai peut être pas la bonne chose, ou puis-je trouver cela, une méthode pour le faire fonctionner? SVP aidez-moi ...
0
cs_seozus Messages postés 14 Date d'inscription samedi 25 septembre 2004 Statut Membre Dernière intervention 30 janvier 2006
30 janv. 2006 à 17:52
Au pire, quelquun d'y connait assez pour que je lui donne la source par email et me le répare ???
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
30 janv. 2006 à 18:02
Salut
Normalement, tu as ce même code (que je t'ai collé) pour faire apparaitre ton icone dans le SysTray sauf que le Shell_NotifyIcon fait appel à MIN_ADD.
Les valeurs des constantes sont :
' Shell_NotifyIcon Flags
Public Const NIM_ADD As Long = &H0 ' Ajouter un icône dans la zone du statut
Public Const NIM_MODIFY As Long = &H1 ' Modifier un icône dans la zone du statut
Public Const NIM_DELETE As Long = &H2 ' Efface un icône de la zone de statut

Alors bien sûr, si tu as appelé différemment IconeT, ça doit pas bien marcher ...
Cherche cette ligne : Public Type NOTIFYICONDATA
C'est la déclaration de la variable qui supporte les infos à transmettre.
Le Dim qui fait référence à ce Type de donnée est le nom que tu dois utiliser.

Si tu ne retrouves pas le genre de code que je t'ai collé, c'est que tu utilises une autre technique.
Alors la moindre des choses serait de nous dire comment tu fais ... sinon on ne pourra rien pour toi.
Si tu veux gagner du temps, cherche parmi les sources de vbfrance "SysTray" --> des dizaines de sources l'utilisent !

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage. (Socrate)
0
cs_seozus Messages postés 14 Date d'inscription samedi 25 septembre 2004 Statut Membre Dernière intervention 30 janvier 2006
30 janv. 2006 à 21:37
C'est bon, le nom est PhotoSystray, mais il se trouve dans un fichier classe qui se nomme systray.cls qui est incorporé a mon projet, et le Form_Unload() lui se trouve dans ma Form1, comment corriger pour qu'il puisse lire dans le fichier classe? Si c'est sa le problème biensur ...

Message d'Erreur de ce code: Complie Error: Variable not defined

Public Sub Form_Unload(Cancel As Integer)
PhotoSystray.cbSize = Len( PhotoSystray )
PhotoSystray.hwnd = Me.hwnd
PhotoSystray.uId = 1&
Shell_NotifyIcon NIM_DELETE, PhotoSystray
End Sub
0
gallyhc Messages postés 386 Date d'inscription samedi 4 octobre 2008 Statut Membre Dernière intervention 19 février 2018 2
30 janv. 2006 à 21:54
Bonjour,

Ajoute juste un End à la fin de ta sub.

Bonne prog
[Gally Home Corp]
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
31 janv. 2006 à 02:27
salut,

si tu utilises un module de classe (pas de toi), il est propable qu'il contienne une fonction du genre .hide à appeler au unload
0
gallyhc Messages postés 386 Date d'inscription samedi 4 octobre 2008 Statut Membre Dernière intervention 19 février 2018 2
2 févr. 2006 à 21:20
Bonjour,

Je t'ai envoyé un code complet pour faire ce que tu veux est-ce que cela est bon pour toi???

Cordialement,
[Gally Home Corp]
0
gallyhc Messages postés 386 Date d'inscription samedi 4 octobre 2008 Statut Membre Dernière intervention 19 février 2018 2
8 févr. 2006 à 21:49
Bonjour,

Cemme cela fait pas mal de temps que je n'ai ausune nouvelle je supose que sa va. De mon cote sans nouvelle je laisse tomber pour toi...

Bonne programmation quand même,
[Gally Home Corp]
0
Rejoignez-nous