Page 1 sur 1

[R] Problème sur la sortie de scripts

Posté : lun. 20 juil. 2015 09:21
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 ? :)

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

Posté : lun. 20 juil. 2015 10:34
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:

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

Posté : lun. 20 juil. 2015 13:21
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

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

Posté : lun. 20 juil. 2015 16:57
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 :)

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

Posté : mer. 22 juil. 2015 08:32
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 :)