[..] La deuxieme éxécution

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Alexward
Niveau 4
Niveau 4
Messages : 76
Enregistré le : jeu. 27 mai 2010 01:24
Status : Hors ligne

[..] La deuxieme éxécution

#1

Message 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
Avatar du membre
jbnh
Niveau 11
Niveau 11
Messages : 1932
Enregistré le : ven. 02 mai 2008 14:54
Localisation : Bruxelles
Status : Hors ligne

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

#2

Message 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
 
Balise [..] devant votre requête en cours, [R] quand résolu | Pas de message concernant les bots !

Merci
Alexward
Niveau 4
Niveau 4
Messages : 76
Enregistré le : jeu. 27 mai 2010 01:24
Status : Hors ligne

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

#3

Message 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
Avatar du membre
jbnh
Niveau 11
Niveau 11
Messages : 1932
Enregistré le : ven. 02 mai 2008 14:54
Localisation : Bruxelles
Status : Hors ligne

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

#4

Message 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
Balise [..] devant votre requête en cours, [R] quand résolu | Pas de message concernant les bots !

Merci
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11824
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

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

#5

Message par Tlem »

Pour éviter qu'un script ne soit lancé plusieurs fois, il faut utiliser la fonction _Singleton.
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Répondre