Un exemple de modification de code trouver ici (code de mikell) : http://www.autoitscript.fr/forum/viewto ... f=3&t=8251
Code qui simule un clic dans les icônes du systray mais sous Windows seven
Contrairement a xp la liste de la toolbar n est pas accessible directement
Je l active en premier et exécute mon action après
Exemple avec le panneau de config Nvidia
Code : Tout sélectionner
#Include <GuiToolBar.au3>
Global $hSysTray_Handle, $iSystray_ButtonNumber
Global $sToolTipTitle = "Paramètres NVIDIA" ; <<<<<<<<< Enter some tooltip text for the icon you want here
_key() ; affiche les icones cachées
Sleep(500)
$iSystray_ButtonNumber = Get_Systray_Index($sToolTipTitle)
If $iSystray_ButtonNumber = 0 Then
MsgBox(16, "Error", "Icon not found in system tray")
Exit
Else
Sleep(500)
_GUICtrlToolbar_ClickButton($hSysTray_Handle, $iSystray_ButtonNumber, "left", false, 2) ;"right")
EndIf
Func _key() ; clic sur le bouton qui affiche les icones
ControlClick("[CLASS:Shell_TrayWnd]","","[CLASS:Button; INSTANCE:1]")
EndFunc
Func Get_Systray_Index($sToolTipTitle)
; Find systray handle
;; Modification ici pour lire les infos de la toolbar
$hSysTray_Handle = ControlGetHandle('[Class:NotifyIconOverflowWindow]', '', '[Class:ToolbarWindow32;Instance:1]')
;;
If @error Then
MsgBox(16, "Error", "System tray not found")
Exit
EndIf
; Get systray item count
Local $iSystray_ButCount = _GUICtrlToolbar_ButtonCount($hSysTray_Handle)
If $iSystray_ButCount = 0 Then
MsgBox(16, "Error", "No items found in system tray")
Exit
EndIf
; Look for wanted tooltip
For $iSystray_ButtonNumber = 0 To $iSystray_ButCount - 1
If StringInStr(_GUICtrlToolbar_GetButtonText($hSysTray_Handle, $iSystray_ButtonNumber), $sToolTipTitle) = 1 Then ExitLoop
Next
If $iSystray_ButtonNumber = $iSystray_ButCount Then
Return 0 ; Not found
Else
Return $iSystray_ButtonNumber ; Found
EndIf
EndFunc