Page 1 sur 1

Boucle if qui ne s'éxécute pas avec pixelsearch et @error

Posté : lun. 12 mars 2018 21:04
par mobbydik
Hello,

Voila, je reviens vers vous car il y a des choses que je ne comprends pas avec la fonction pixelsearch.

Le code:
 Func ProgBienLance()

$Begin = TimerInit()

while 1

   PixelSearch (1178,579,1193,590, 0x4E5768); la couleur n'existe pas dans le carré délimité
   MsgBox($MB_SYSTEMMODAL, "Title", @error, 1000000); là, j'ai bien 1 qui apparait dans la message box
   if @error Then
        WinClose ("ProgRS232"); il ferme mon programme
        MouseClick ("left", 895, 644); il clique sur le bouton de confirmation car winkill ne fonctionne pas
        sleep(30000); il attend que le programme soit bien fermé
        LancerProg(); il relance le chargement du programme
   EndIf

 If Int(TimerDiff($begin)/1000) > $Duree Then ExitLoop; n'exécutant pas la premiere condition, il vient ici, sort de la boucle et poursuit le script

WEnd
EndFunc
Ce que je ne comprend pas, c'est qu'il n'execute pas la première boucle If...

Savez-vous pourquoi?

Re: Boucle if qui ne s'éxécute pas avec pixelsearch et @error

Posté : lun. 12 mars 2018 21:23
par Tlem
Bonsoir.
Juste pour information If/EndIf ne correspond pas à une boucle, mais à un test de condition. ^^

Concernant votre demande, @error prend la valeur de retour d'erreur de l'instruction qui la précède. En l'occurrence la MsgBox. Comme celle-ci s'affiche, il n'y a pas d'erreur. ^^

Re: Boucle if qui ne s'éxécute pas avec pixelsearch et @error  

Posté : lun. 12 mars 2018 21:30
par mobbydik
Merci, je savais que c'était un truc bete