Functions > Tray >


TrayItemSetOnEvent

Définit une fonction utilisateur qui est appelée quand un élément de la zone de notification est cliqué.

TrayItemSetOnEvent ( itemID, "function" )

Paramètres

itemID L'identifiant de l'item (itemID) tel que retourné par la fonction TrayCreateItem.
function Le nom de la fonction utilisateur à appeler.

Valeur de retour

Succès: Retourne 1.
Échec: Retourne 0.
@error: 1 = la fonction utilisateur n'est pas définie.

Remarques

Les fonctions OnEvent sont appelées uniquement lorsque l'option Opt("TrayOnEventMode", 1) - Dans ce mode, TrayGetMsg() n'est PAS utilisée du tout.

Dans la fonction utilisateur appelée l'identifiant de l'élément peut être récupéré avec @TRAY_ID.

Si la fonction est une chaîne vide "" la précédente fonction utilisateur est désactivée.

En relation

TrayCreateItem, TrayGetMsg, TrayOnEventMode (Option), TraySetOnEvent

Exemple

#NoTrayIcon
#include <MsgBoxConstants.au3>
#include <StringConstants.au3>
#include <TrayConstants.au3>

; Les éléments de menu de la zone de notification, par défaut, ne seront pas affichés 
; et les items ne sont pas cochés lorsqu'ils seront  sélectionnés. 
; Ce sont les options 1 et 2 de TrayMenuMode.
Opt("TrayMenuMode", 3)

; Active TrayOnEventMode.
Opt("TrayOnEventMode", 1)

Global $bStopScript = False
Example()

Func Example()
    TrayCreateItem("About")
    TrayItemSetOnEvent(-1, "About")

    TrayCreateItem("") ; Crée une ligne de séparation.

    TrayCreateItem("Exit")
    TrayItemSetOnEvent(-1, "ExitScript")

    ; Affiche la MsgBox About lorsque l'icône de la zone de notification est double-cliquée avec le bouton principal de la souris.
    TraySetOnEvent($TRAY_EVENT_PRIMARYDOUBLE, "About")

    ; Affiche le menu de la zone de notification.
    TraySetState($TRAY_ICONSTATE_SHOW)

    While Not $bStopScript
        Sleep(100) ; Une boucle d'inactivité.
    WEnd
EndFunc   ;==>Example

Func About()
    ; Affiche une boîte de message à propos de la version et 
    ; du chemin d'installation de l'exécutable AutoIt.
    Local $iASlash, $sPath
    
    ; Recherche de droite à gauche l'antislash qui marque la fin du chemin
    $iASlash = StringInStr(@AutoItExe, "\", $STR_NOCASESENSEBASIC, -1)
    ; Extrait le chemin seul, sans le nom, ni '\'
    $sPath = StringLeft(@AutoItExe, $iASlash - 1)

    MsgBox($MB_SYSTEMMODAL, "", "Exemple de menu dans la zone de notification." & @CRLF & @CRLF & _
        "Version: " & @AutoItVersion & @CRLF & _
        "Chemin d'installation: " & $sPath) 
EndFunc   ;==>About

Func ExitScript()
    $bStopScript = True
EndFunc   ;==>ExitScript