Page 1 sur 1

[..] La deuxieme éxécution

Posté : jeu. 10 juin 2010 13:39
par Alexward
Bonjour à tous, j'ai un script que quand on le quitte , il est dans la barre des tâches.

En faite le GUI_Event_Close donne un GuiSetState(SW_hide) au Gui. Quand je fait ouvrir dans la barre des taches sa fait un GuiSetState(SW_SHOW).

Mon probleme est que si je réouvre mon script avec l'icone, il s'éxécute une deuxieme fois dans la barre des tâches. J'aimerais que si on clique une deuxieme fois sur l'icone de mon script, il ce fasse un GUiSetState(@SW_SHOW) au GUI et qu'il ne s'exécute pas une deuxième fois.

Merci

Re: [..] La deuxieme éxécution

Posté : jeu. 10 juin 2010 17:00
par jbnh
Salut,

voila ce que j'ai réussi à faire, adapte avec ta gui :

Code : Tout sélectionner

#include <GuiConstants.au3>
#include <Constants.au3>
#NoTrayIcon

Opt("TrayOnEventMode",1)
Opt("TrayMenuMode",1) ;Pause et exit ne seront pas affichés
TraySetOnEvent($TRAY_EVENT_PRIMARYDOUBLE,"SpecialEvent")
TraySetState()

GuiCreate("", 350, 260)


GUISetState(@SW_SHOW)

While 1
$msg = GUIGetMsg()
    Select
        Case $msg = $GUI_EVENT_CLOSE
              GuiSetState(@SW_hide)            

    EndSelect            
Wend


Func SpecialEvent()
    Select
        Case @TRAY_ID = $TRAY_EVENT_PRIMARYDOUBLE
            GuiSetState(@SW_SHOW)  
    EndSelect 
EndFunc
 

Re: [..] La deuxieme éxécution

Posté : jeu. 10 juin 2010 17:59
par Alexward
Merci beaucoup je vais pouvoir essayer sa après l'école. Donc comme sa mon script ne pourra pas s'éxécuter 2 fois ces bien sa :) ? Et si j'essais de l'éxécuter une 2e fois normalement le GUI serait suposer ouvrir grace au GUISetState(@SW_SHOW) :) ?

Merci

Re: [..] La deuxieme éxécution

Posté : jeu. 10 juin 2010 19:02
par jbnh
Ha non j'ai peut être pas très bien compris. Ce que je t'ai donné enfait, quand tu doubles clic sur l'icone dans la barre des taches, il ouvre la gui :

Code : Tout sélectionner

Func SpecialEvent()
    Select
        Case @TRAY_ID = $TRAY_EVENT_PRIMARYDOUBLE
            GuiSetState(@SW_SHOW)  
    EndSelect 
EndFunc
Mais tu peux moduler a ta facon. En fait je comprend pas bien ce que tu demandes :p

Re: [..] La deuxieme éxécution

Posté : jeu. 10 juin 2010 22:45
par Tlem
Pour éviter qu'un script ne soit lancé plusieurs fois, il faut utiliser la fonction _Singleton.