Page 1 sur 1

[..] Fonction de GUI qui empeche les autres actions

Posté : sam. 23 févr. 2008 13:15
par astaroth
Bonjour,

Voila je voudrais integrer une partie d'un script dans un autre mais quand je le fait cela bloque mes autre actions (je ne peut plus cliqué sur le Label de ma GUI.

Je voudrais mettre:

Code : Tout sélectionner

$oIE = _IECreate ($url3,0 ,0)
            If ($url3 <> $url4) Or (Sleep(10000)) Then
                 $retour = MsgBox ( 4+32, "Erreur", "Continuer?")                
               if $retour = 6 Then
                     Run(@ComSpec & " /c start file:" & $url, "", @SW_HIDE)
                     _IEQuit ($oIE)
                  Else
                          _IEQuit ($oIE)
                EndIf
                   _IELinkClickByText ($oIE, "cliquer pas la")
                    SplashOff()
                   Sleep (1000)
                   _IEAction ($oIE, "visible")
            EndIf
Dans:

Code : Tout sélectionner

#include <IE.au3>
#NoTrayIcon
#include <GUIConstants.au3>

$Image2 = "\Patientez.jpg"
 
$url = "http://www.Blabla.com/"
$url3 = "http://www.1234.fr"
$url4 = "http://www.1234.fr"


GUICreate("Patientez", 480, 350)
GUICtrlCreatePic(@TempDir & $Image2, 0, 0, 480, 350, $SS_CENTERIMAGE)
GUISetBkColor(0x000000)

GUISetFont(10, 50, 1, "Comic Sans MS")

GUICtrlCreateLabel("Label rouge", 250, 270, 200, 25, $BS_CENTER)
GUICtrlSetBkColor(-1,$GUI_BKCOLOR_TRANSPARENT )
GUICtrlSetColor(-1, 0xFFFFFF)

GUISetFont(14, 800, 1, "Comic Sans MS")

$Button_1 = GUICtrlCreateLabel("Accès", 260, 320, 120,25, $BS_CENTER)
GUICtrlSetBkColor(-1,$GUI_BKCOLOR_TRANSPARENT )
GUICtrlSetColor(-1, 0xFFFFFF)
GUICtrlSetCursor(-1, 0)

GUISetState()


While 1
    $msg = GUIGetMsg()
    Select
        Case $msg = $GUI_EVENT_CLOSE
            ExitLoop
        Case $msg = $Button_1
            Run(@ComSpec & " /c start file:" & $url, "", @SW_HIDE)
            ExitLoop
    EndSelect
WEnd
Si quelqu'un a une solution pour que, lorsque la GUI s'ouvre (le 2iem script donc) le premier script s'execute automatiquement (par defaut) et lorsque je click sur le label le premier script s'arrette et le "While" s'execute normalement (c'est a dire qu'il ouvre le site en question et ferme le script). :)

Merci

Re: [...] Fonction de GUI qui empeche les autres actions

Posté : sam. 23 févr. 2008 16:30
par ani
je comprend pas :o

dans le premier code, on voit des splashoff() mais...ou sont les splash ? pour integrer le bout de code dans le second, faut juste faire ... l'action est défini sur le $bouton_1 ?

dans le second code.
$msg = $GUI_EVENT_CLOSE est noté deux fois , une seul fois suffit ;)
retire le if $msg = $GUI_EVENT_CLOSE then exitloop

Re: [...] Fonction de GUI qui empeche les autres actions

Posté : sam. 23 févr. 2008 17:47
par astaroth
les splash c'estait des p'tit residu oublier ^^

En fait il faut que quand la GUI s'ouvre il créer une page IE en silencieux, s'il y a une erreur la msg box s'ouvre et selon la réponse renvoi ver une page ou quitte la GUI (code 1 en fait), et lorsqu'on click sur le $bouton_1 toute actions du code 1 s'arretent et laisse place a ce que le bouton doit faire.. (j'ai du mal a expliquer ^^)

"faut juste faire ... "

C'est a dire?

Merci

Re: [..] Fonction de GUI qui empeche les autres actions

Posté : sam. 23 févr. 2008 21:18
par tolf
Déjà, le sleep dans la ligne suivante n'est pas une bonne idée :

Code : Tout sélectionner

If ($url3 <> $url4) Or (Sleep(10000)) Then
car le script ne comprendra pas qu'il faut afficher le message d'erreur aubout de 10 secondes. Tu devrais utiliser un TimerInit() / TimerDiff() comme ceci :

Code : Tout sélectionner

$time1 = TimerInit()
If TimerDiff($time1) > 10000 Then
Mais de toute façon, cela me parait difficile de tester le temps mis pour la fonction "_IECreate" (il faudrait placer le test de temps à l'intérieur de la fonction).

Désolé si cela ne répond pas au problème principal (je n'ai pas testé le script) mais déjà, regarde la question du sleep.