Faire disparaitre icone du tray lorsque programme quitté
cs_seozus
Messages postés14Date d'inscriptionsamedi 25 septembre 2004StatutMembreDernière intervention30 janvier 2006
-
29 janv. 2006 à 01:48
gallyhc
Messages postés386Date d'inscriptionsamedi 4 octobre 2008StatutMembreDernière intervention19 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 ?
A voir également:
Faire disparaitre icone du tray lorsque programme quitté
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201578 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)
cs_seozus
Messages postés14Date d'inscriptionsamedi 25 septembre 2004StatutMembreDernière intervention30 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 ...
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201578 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)
cs_seozus
Messages postés14Date d'inscriptionsamedi 25 septembre 2004StatutMembreDernière intervention30 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