Obtient le handle d'un contrôle menu/menuitem de la zone de notification.
TrayItemGetHandle ( controlID )
controlID | L'ID du contrôle tel que retourné par la fonction TrayCreateItem ou TrayCreateMenu. |
Succès: | Retourne le handle de l'ID donné. |
Échec: | Retourne 0. |
TrayItemGetState, TrayItemGetText
#NoTrayIcon #include <MsgBoxConstants.au3> #include <StringConstants.au3> #include <TrayConstants.au3> ; Pour la constante $TRAY_ICONSTATE_SHOW. ; Les items du menu de la zone de notification, par défaut, ne seront pas affichés ; et les items ne seront pas cochés lorsqu'ils seront sélectionnés. ; Ce sont les options 1 et 2 de TrayMenuMode. Opt("TrayMenuMode", 3) ; Constantes nécessaires pour SetMenuColor Global Const $MIM_APPLYTOSUBMENUS = 0x80000000, $MIM_BACKGROUND = 0x00000002 Example() Func Example() ; Crée un sous-menu du menu de la zone de notification avec deux sous-éléments. Local $idSettings = TrayCreateMenu("Settings") Local $idDisplay = TrayCreateItem("Display", $idSettings) Local $idPrinter = TrayCreateItem("Printer", $idSettings) TrayCreateItem("") ; Crée une ligne de séparation. Local $idAbout = TrayCreateItem("About") TrayCreateItem("") ; Crée une ligne de séparation. Local $idExit = TrayCreateItem("Exit") TraySetState($TRAY_ICONSTATE_SHOW) ; Affiche le menu dans la zone de notification. SetMenuColor(0, 0xEEBB99) ; Valeur de couleur RGB, '0' se réfère au menu de la zone de notification lui-même. SetMenuColor($idSettings, 0x66BB99); Valeur de couleur RGB pour le menu "Settings". Local $iASlash, $sPath, $iMsg = TrayGetMsg() While $iMsg <> $idExit Switch $iMsg Case $idAbout ; Affiche une boîte de message à propos de la version et ; du chemin d'installation de l'exécutable AutoIt. ; 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, "", "AutoIt tray menu example." & @CRLF & @CRLF & _ "Version: " & @AutoItVersion & @CRLF & _ "Chemin d'installation: " & $sPath) Case $idDisplay, $idPrinter MsgBox($MB_SYSTEMMODAL, "", "Un élément dans le sous menu a été sélectionné dans le menu de la zone de notification.") EndSwitch $iMsg = TrayGetMsg() WEnd EndFunc ;==>Example Func SetMenuColor($iMenuID, $iColor) Local $hMenu = TrayItemGetHandle($iMenuID) ; Obtient le handle interne de menu Local $hBrush = DllCall("gdi32.dll", "hwnd", "CreateSolidBrush", "int", $iColor) $hBrush = $hBrush[0] Local $tMenuInfo = DllStructCreate("dword;dword;dword;uint;ptr;dword;ptr") DllStructSetData($tMenuInfo, 1, DllStructGetSize($tMenuInfo)) DllStructSetData($tMenuInfo, 2, BitOR($MIM_APPLYTOSUBMENUS, $MIM_BACKGROUND)) DllStructSetData($tMenuInfo, 5, $hBrush) DllCall("user32.dll", "int", "SetMenuInfo", "hwnd", $hMenu, "struct*", $tMenuInfo) EndFunc ;==>SetMenuColor