Page 1 sur 1

[R] Création menu du tray

Posté : lun. 17 nov. 2008 11:51
par AlbatorV
Bonjour à tous,
j'ai besoin de votre aide pour la création de menu sur clic sur l'icone du tray.
J'ai un script qui tourne en boucle et qui déclanche une action sur activation d'une fenêtre.

Je voudrais créer un item dans le menu pour ajouter un raccourci dans le menu de demarrage automatique @StartupDir. Si l'item est cochée le raccourci est déjà créé, sinon creation du raccourci.

1) Est il possible de créer un item que l'on peut activer/desactiver (comme l'item pour mettre en pause). J'ai trouvé dans l'aide pour créer un item radio mais pas pour cocher/decocher.
2) Mon script est dèjà dans une boucle While-Wend et j'ai vu dans l'aide que le menu du tray dois l'être également. Ou dois-je mettre mon script ?

Script de création d'item pris dans l'aide

Code : Tout sélectionner

#Include <Constants.au3>
#NoTrayIcon

Opt("TrayMenuMode",1)   ; Default tray menu items (Script Paused/Exit) will not be shown.

$prefsitem  = TrayCreateItem("Démarrer avec windows")
TrayCreateItem("")
$exititem   = TrayCreateItem("Exit")

TraySetState()

While 1
    $msg = TrayGetMsg()
    Select
        Case $msg = 0
            ContinueLoop
        Case $msg = $prefsitem
            FileCreateShortcut(@ScriptFullPath, @StartupDir & "\Calculette script.lnk")
        Case $msg = $exititem
            ExitLoop
    EndSelect
WEnd
Mon script

Code : Tout sélectionner

While 1
    WinWaitActive("Calculatrice")
    If msgbox(0,"Fenêtre activée","Minimisation de la fenêtre") Then
        WinSetState("Calculatrice", "", @SW_MINIMIZE)
        ContinueLoop
    EndIf
WEnd
Merci d'avance

Re: [..] Création menu du tray

Posté : lun. 17 nov. 2008 16:33
par Tlem
Ceci devrait convenir :

Code : Tout sélectionner

#include <Constants.au3>

AdlibEnable("_MinimizeCalc",1000)
Opt("TrayMenuMode", 3)

$checkeditem = TrayCreateItem("Démarrage Automatique")
$create_blank = TrayCreateItem("")
$exit = TrayCreateItem("Sortie")

If FileExists(@StartupDir & "\Calculette script.lnk") Then TrayItemSetState($checkeditem, $TRAY_CHECKED)

TraySetState()

While 1
    $msg = TrayGetMsg()
    Select
        Case $msg = 0
            ContinueLoop
            
        Case $msg = $checkeditem
            If BitAND(TrayItemGetState($checkeditem), $TRAY_CHECKED) = 1 Then
                TrayItemSetState($checkeditem, $TRAY_UNCHECKED)
                FileDelete(@StartupDir & "\Calculette script.lnk")

            Else
                TrayItemSetState($checkeditem, $TRAY_CHECKED)
                FileCreateShortcut(@ScriptFullPath, @StartupDir & "\Calculette script.lnk")

            EndIf

        Case $msg = $exit
            ExitLoop
            
    EndSelect
WEnd

Func _MinimizeCalc()
    If WinActive("Calculatrice") Then
        WinSetState("Calculatrice", "", @SW_MINIMIZE)
        AdlibDisable() ; Permet de désactiver la réduction (sinon sa va être dure d'utiliser la calculette)
    EndIf
EndFunc

Re: [..] Création menu du tray

Posté : lun. 17 nov. 2008 16:46
par AlbatorV
Excellent !!! Merci beaucoup...
Derniere ptite question... ou mettre mon code ?

Code : Tout sélectionner

While 1
    WinWaitActive("Calculatrice")
    If msgbox(0,"Fenêtre activée","Minimisation de la fenêtre") Then
        WinSetState("Calculatrice", "", @SW_MINIMIZE)
        ContinueLoop
    EndIf
WEnd
Si je le mets a la suite, les items ne fonctionnent plus :(

Re: [..] Création menu du tray

Posté : lun. 17 nov. 2008 17:03
par Tlem
J'ai édité mon script précédent pour répondre à votre question.

Re: [..] Création menu du tray

Posté : mar. 18 nov. 2008 10:31
par AlbatorV
Merci, c'est parfait...
J'adore Autoit... :D