[Ex] Cliquer sur un icône dans le systray sous Seven

Partagez vos scripts, et vos applications AutoIt.
Règles du forum
.
Répondre
overflow
Niveau 5
Niveau 5
Messages : 138
Enregistré le : sam. 05 déc. 2009 23:49
Status : Hors ligne

[Ex] Cliquer sur un icône dans le systray sous Seven

#1

Message par overflow »

Bonjours

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
 
Loulou63
Niveau 4
Niveau 4
Messages : 51
Enregistré le : lun. 22 août 2011 10:58
Status : Hors ligne

Re: [Ex] Cliquer sur un icône dans le systray sous Seven

#2

Message par Loulou63 »

Bonjour,

Merci pour cette solution qui m'aurait bien servi avant...
En tout cas, merci de l'avoir postée car elle me sert pour un autre script.
Au moins, tu es le seul qui a compris ma demande de l'époque :D.
DUNEDAI
Niveau 1
Niveau 1
Messages : 1
Enregistré le : ven. 27 déc. 2013 21:19
Status : Hors ligne

Re: [Ex] Cliquer sur un icône dans le systray sous Seven

#3

Message par DUNEDAI »

Et comment pourriez-vous, puis cliquez sur la liste déroulante?

Merci
Répondre