[..] Comportement aléatoire sur _GUICtrlButton_Click ???

Aide sur les Interfaces Graphique Utilisateurs (GUI).
Règles du forum
.
Répondre
deuzef68
Niveau 1
Niveau 1
Messages : 12
Enregistré le : lun. 26 avr. 2010 14:03
Status : Hors ligne

[..] Comportement aléatoire sur _GUICtrlButton_Click ???

#1

Message par deuzef68 »

Bonjour à tous

j'ai un comportement un peu bizarre de la fonction _GUICtrlButton_Click...
pour automatiser une application, j'utilise cette fonction pour cliquer sur différents
boutons qui me font passer d'une fenêtre à l'autre....
et sur l'avant dernière fenêtre....un bouton ok....
je récupère bien le bon handle sur le bouton et j'appelle la dîte fonction _GUICtrlButton_Click
mais hélas cela ne fonctionne pas toujours...
souvent la fenêtre reste comme si on n'avait pas cliqué sur OK
je stoppe l'exécution...je retourne dans le source
je vais dans le code sur la fonction est je clique sur F1 depuis Scite pour lancer l'aide
une fenêtre d'aide se lance bien mais en plus
à ce moment là l'éxécution du script se relance...????
et l'on déroule le script jusqu'au bout et arrivé à la fenêtre où il y a le bouton OK,
ça se passe bien et la fonction _GUICtrlButton_Click fonctionne bien et on passe
à la fenêtre suivante et on va même jusqu'au bout du script ......????

Quelqu'un pourrait-il m'expliquait le pourquoi du comment

D'avance merci

Fred
deuzef68
Niveau 1
Niveau 1
Messages : 12
Enregistré le : lun. 26 avr. 2010 14:03
Status : Hors ligne

Re: [..] Comportement aléatoire sur _GUICtrlButton_Click ???

#2

Message par deuzef68 »

Bon après pas mal de test....

le problème vient de la fenêtre d'avant !!!!!

Code : Tout sélectionner

         ;************************************************
         ; on passe  la 4eme fenetre du driver SQL natif
         ;************************************************

         ; on clique sur finish pour finir
                           $hButton = ControlGetHandle ($sSQLNCLI_Panel4,"","[CLASS:Button; INSTANCE:18]")
         _GUICtrlButton_Click($hButton)

         ;************************************************
         ; on passe  la 5eme fenetre du driver SQL natif
         ;************************************************
                          _WinWaitActivate($sSQLNCLI_Panel5,"")

         ; on clique sur le bouton OK
         Local $hPanel = WinGetHandle($sSQLNCLI_Panel5)
                           $hButton = ControlGetHandle ($sSQLNCLI_Panel5,"","[CLASS:Button; INSTANCE:2]")
         _GUICtrlButton_Click($hButton)
 
avec ce code ça bloquait au niveau de la 5ème fenêtre....
il fallait relancer le script 20 fois pour que ça fonctionne une fois ou deux


en modifiant le code pour la 4ème fenêtre ça fonctionne à la 5ème !!!!

Code : Tout sélectionner

         ;************************************************
         ; on passe  la 4eme fenetre du driver SQL natif
         ;************************************************

         ; on clique sur finish pour finir
         send("{ENTER}")

         ;************************************************
         ; on passe  la 5eme fenetre du driver SQL natif
         ;************************************************
                           _WinWaitActivate($sSQLNCLI_Panel5,"")

         ; on clique sur le bouton OK
         Local $hPanel = WinGetHandle($sSQLNCLI_Panel5)
                          $hButton = ControlGetHandle ($sSQLNCLI_Panel5,"","[CLASS:Button; INSTANCE:2]")
         _GUICtrlButton_Click($hButton)
 
C'est un peu bizarre quand même....
Quelqu'un aurait une explication....sachant que [CLASS:Button;INSTANCE:18] est bon ! c'est le bon Button

Fred
Répondre