[R] Problème sur la sortie de scripts

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
caropost
Niveau 4
Niveau 4
Messages : 63
Enregistré le : jeu. 19 mars 2015 16:24
Status : Hors ligne

[R] Problème sur la sortie de scripts

#1

Message par caropost »

Bonjour à tous, je sollicite une nouvelle fois votre aide :)

J'ai Script1.exe qui fait appel à une fonction MyFunction(arg1, arg2, arg3) qui se trouve dans Script2.exe. Une fois que MyFunction a fini son exécution, le programme continu sur Script1.exe.
Dans MyFunction, j'utilise la fonction Expect qui est définie ici : https://www.autoitscript.com/forum/topi ... ntry890269
Le but est que si le mot n'est pas trouvé, un message d'erreur s'affiche et lorsqu'on clic sur "OK" on sort des 2 scripts. Je l'ai donc un peu modifiée :
► Afficher le texteExpect
J'ai commencé par faire un simple "exit" si le mot n'était pas trouvé mais je ne faisais que sortir de Script2.exe et le programme continuait sur Script1.exe, ce qu'on ne veut pas.
Pour cela, j'ai ajouté la variable $exit. Je la met à "FALSE" de base mais lorsqu'un mot n'est pas trouvé, je la variable devient "TRUE". Et dans Script1.exe, j'ai mis ceci :

Code : Tout sélectionner

ShellExecuteWait(Script2.exe', $var1 & ' ' & $var2 & ' ' & $var3, $directory)
$exit = ClipGet()
Local $exit = ClipGet()
If $exit = True Then Exit
Sachant que j'ai déclaré au début du script que $exit = False. Avec un MsgBox, je vois bien que $exit prend True ou False correctement mais dans les 2 cas, il sort des 2 scripts, même si MyFunction va jusqu'au bout correctement :(
Sauriez-vous m'aider svp ? :)
Modifié en dernier par caropost le mer. 22 juil. 2015 08:36, modifié 1 fois.
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Problème sur la sortie de scripts

#2

Message par mikell »

Code : Tout sélectionner

ClipPut(False)
$c = ClipGet()

If IsBool($c) Then Msgbox(0,"bool", $c)
If IsString($c) Then Msgbox(0,"string", $c)
If $c = True Then Msgbox(0,"test", $c)
:wink:
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Avatar du membre
orax
Modérateur
Modérateur
Messages : 1479
Enregistré le : lun. 23 mars 2009 04:50
Localisation : ::1
Status : Hors ligne

Re: [..] Problème sur la sortie de scripts

#3

Message par orax »

► Afficher le texte
Si Script1 quitte avec une valeur différente de 0 (0 est la valeur de retour par défaut) alors Script2 s'arrêtera.

Code : Tout sélectionner

Local $exit = ShellExecuteWait('Script2.exe', $var1 & ' ' & $var2 & ' ' & $var3, $directory)
If $exit Then Exit
De petits détails peuvent faire toute la différence. — Quand la boule de neige commence à rouler… poussez-la. (Columbo)
caropost
Niveau 4
Niveau 4
Messages : 63
Enregistré le : jeu. 19 mars 2015 16:24
Status : Hors ligne

Re: [..] Problème sur la sortie de scripts

#4

Message par caropost »

Que ce soit True ou False j'ai les fenêtres "String" et "test" qui s'ouvrent...
J'ai fais une petite modification :

Code : Tout sélectionner

If IsBool($c) Then Msgbox(0,"bool", $c)
If IsString($c) Then Msgbox(0,"string", $c)
If $c = True Then
   Msgbox(0,"test true", $c)
Else
   Msgbox(0,"test false", $c)
Et bien que j'obtenais "False" dans la fenêtre String", il m'ouvrait la fenêtre "test true" oO
Par contre, si je mets :

Code : Tout sélectionner

If $c = "True" Then
   Msgbox(0,"test true", $c)
Else
   Msgbox(0,"test false", $c)
Là c'est bien reconnu... Merci :)
caropost
Niveau 4
Niveau 4
Messages : 63
Enregistré le : jeu. 19 mars 2015 16:24
Status : Hors ligne

Re: [..] Problème sur la sortie de scripts

#5

Message par caropost »

orax a écrit :
► Afficher le texte
Si Script1 quitte avec une valeur différente de 0 (0 est la valeur de retour par défaut) alors Script2 s'arrêtera.

Code : Tout sélectionner

Local $exit = ShellExecuteWait('Script2.exe', $var1 & ' ' & $var2 & ' ' & $var3, $directory)
If $exit Then Exit
Je n'avais pas vu ton post lorsque j'ai posté mon précédent, je ne l'ai vu qu'hier et effectivement ça fonctionne bien :) Merci beaucoup parce que ça m'a permit de faire facilement quelque chose qui était prévu dans une V2 :)
Répondre