Mettre à jour une icone dans le systray [Résolu]

Signaler
Messages postés
2641
Date d'inscription
mercredi 2 juin 2004
Statut
Membre
Dernière intervention
8 janvier 2014
-
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
-
Hola,

je cherche à mettre à jour une icone dans le systray.
Le seul moyen que j'ai trouver était de supprimer l'icone du systray pour afficher une autre à la place. mais j'ai vu que l'icône qui gère mon Wifi ne fait pas comme ceci et que elle change sans changer d'emplaement dans le systray.

Chris...
Web : Firstruner - eMail : [mailto:support@firstruner.com Support]

2 réponses

Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
75
Salut cboulas
Tu n'es pas bien curieux quand même !

Regarde ta dernière ligne :
Shell_NotifyIcon SUPPRIME, IconeT

et regarde les déclarations de SUPPRIME, au dessus, tu as la variable qu'il faut utiliser pour modifier un des paramètre de l'objet (l'icone par exemple), ce qui donne :
Shell_NotifyIcon MODIF, IconeT

Vala
Jack
3
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 179 internautes nous ont dit merci ce mois-ci

Messages postés
2641
Date d'inscription
mercredi 2 juin 2004
Statut
Membre
Dernière intervention
8 janvier 2014
15
voivi le code pour afficher mon icône :

Private Type IconeTray
'tim As Timer 'Timer de l'icone Tray
cbSize As Long 'Taille de l'icône (en octets)
hWnd As Long 'Handle de la fenêtre chargée de recevoir les messages envoyés lors des évènements sur l'icône (clics, doubles-clics...)
uID As Long 'Identificateur de l'icône
uFlags As Long
uCallbackMessage As Long 'Messages à renvoyer
hIcon As Long 'Handle de l'icône
szTip As String * 64 'Texte à mettre dans la bulle d'aide
End Type

Dim IconeT As IconeTray

'Constantes nécessaires
Private Const AJOUT = &H0
Private Const MODIF = &H1
Private Const SUPPRIME = &H2
Private Const MOUSEMOVE = &H200
Private Const MESSAGE = &H1
Private Const Icone = &H2
Private Const TIP = &H4

Private Const DOUBLE_CLICK_GAUCHE = &H203
Private Const BOUTON_GAUCHE_POUSSE = &H201
Private Const BOUTON_GAUCHE_LEVE = &H202
Private Const DOUBLE_CLICK_DROIT = &H206
Private Const BOUTON_DROIT_POUSSE = &H204
Private Const BOUTON_DROIT_LEVE = &H205

'API nécessaire
Private Declare Function Shell_NotifyIcon Lib "shell32" Alias "Shell_NotifyIconA" (ByVal dwMessage As Long, pnid As IconeTray) As Boolean


Private Sub Form_Load()
    'Préparation de la variable IconeT
    IconeT.cbSize = Len(IconeT) 'Taille de l'icône en octet
    IconeT.hWnd = Me.hWnd 'Handle de l'application (pour qu'elle reçoive les messages envoyés lors d'un clic, double-clic...
    IconeT.uID = 1& 'Identificateur de l'icône
    IconeT.uFlags = Icone Or TIP Or MESSAGE
    IconeT.uCallbackMessage = MOUSEMOVE 'Renvoyer les messages concernant l'action de la souris
    IconeT.hIcon = Me.Icon 'Mettre en icône l'image qui est dans le contrôle "Image1"
    IconeT.szTip = "Horloge Floue" & Chr$(0) 'Texte de la bulle d'aide

    'Appel de la fonction pour mettre l'icône dans le système tray
    Shell_NotifyIcon AJOUT, IconeT
End Sub


Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Static msg As Long
    msg = X / Screen.TwipsPerPixelX
    Select Case msg 'Différentes possibilité d'action
        Case DOUBLE_CLICK_GAUCHE: 'mettez
        Case BOUTON_GAUCHE_POUSSE: 'ce
        Case BOUTON_GAUCHE_LEVE: 'que
            PopupMenu Form2.MnuMain
        Case DOUBLE_CLICK_DROIT: 'vous
        Case BOUTON_DROIT_POUSSE: 'voudrez
        Case BOUTON_DROIT_LEVE: 'qu'il se passe
            PopupMenu Form2.MnuMain
    End Select
End Sub


Private Sub Form_Unload(Cancel As Integer)
    IconeT.cbSize = Len(IconeT)
    IconeT.hWnd = Me.hWnd
    IconeT.uID = 1&
    Shell_NotifyIcon SUPPRIME, IconeT
End Sub


Chris...
Web : Firstruner - eMail : [mailto:support@firstruner.com Support]