[R] Script qui retourne une valeur

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
fred
Niveau 2
Niveau 2
Messages : 24
Enregistré le : ven. 11 avr. 2008 15:07
Status : Hors ligne

[R] Script qui retourne une valeur

#1

Message par fred »

Bonjour a tous,
une petite question certainement un peu bête mais : comment faire pour qu'un script retourne une valeur.?.....
pouvez vous me montrer un exemple de retour de valeur...et d'appel du script en run.pour recevoir la valeur.?...
je ne parviens pas a trouver un exemple sur le site.
Merci par avance de vos réponses.
Modifié en dernier par Tlem le lun. 19 oct. 2009 22:16, modifié 2 fois.
Raison : Ajout de la balise [..] dans le titre.
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11784
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Script qui retourne une valeur

#2

Message par Tlem »

Merci de respecter les règles du forum : http://autoitscript.fr/forum/viewtopic.php?f=3&t=595

Pour la valeur de retour, c'est simplement la fonction Exit avec la valeur de retour.

En ce qui concerne les arguments, j'ai répondu récemment sur ce sujet.
Merci de faire quelques recherches.
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
fred
Niveau 2
Niveau 2
Messages : 24
Enregistré le : ven. 11 avr. 2008 15:07
Status : Hors ligne

Re: [..] Script qui retourne une valeur

#3

Message par fred »

oups.....Merci Tlem..
merci de ta réponse.
Résolu.
ani
Niveau 11
Niveau 11
Messages : 1826
Enregistré le : lun. 23 juil. 2007 12:31
Localisation : Bureau
Status : Hors ligne

Re: [..] Script qui retourne une valeur

#4

Message par ani »

exit ? erreur :)
traduction = sorti

Tout depend de ce que tu veux faire fred

un petit exemple tout droit sorti de l'aide (regarde a Return §traduction retourner§)

Code : Tout sélectionner

msgBox(0,"Aujourd'hui nous somme le " & today(), "Pour retourner une valeur on utilisera Return")
Exit

Func today()  ;Returne la date courante sous forme dd/mm/yyyy (jour/mois/anné)
    return (@MDAY & "/" & @MON & "/" & @YEAR)
EndFunc
fred
Niveau 2
Niveau 2
Messages : 24
Enregistré le : ven. 11 avr. 2008 15:07
Status : Hors ligne

Re: [..] Script qui retourne une valeur

#5

Message par fred »

slt ani,

en fait je souhaite, a partir du script1 lancer un script2....le script 2 retourne une valeur...et selon la valeur de retour, lancer un autre script.....
En fait je pose la question pour 2 cas de figure différent :
- connaitre un état..
et aussi parce que je souhaite pouvoir faire ce type de commande :

Code : Tout sélectionner

Run("AutoIt3.exe fiche_test\script2.au3 param1")
Run("AutoIt3.exe fiche_test\script2.au3 param2")
Run("AutoIt3.exe fiche_test\script2.au3 param3")
Run("AutoIt3.exe fiche_test\script2.au3 param4")
 
l'appli que je test ( grosse appli) a comme qui dirait, des petits probleme de mémoire....et je galère avec les sleep, et les boucle d'attente....pour 2 ou 3 fiches de tests je vais etre obligé de découper les test, sinon je vais passer plus de temps a débuguer les scripts qu'a automatiser les tests....:)...
il y a 2 questions en fait :
comment récuperer une valeur de sortie d'un script..
et
comment détecter la fin d'un script pour en lancer un deuxieme...( je pose la question mais pas encore regarder a fond la doc).....
voila...une idée ani.?
Avatar du membre
sylvanie
Niveau 11
Niveau 11
Messages : 1556
Enregistré le : jeu. 26 juil. 2007 21:31
Localisation : Paris
Status : Hors ligne

Re: [..] Script qui retourne une valeur

#6

Message par sylvanie »

pour récupérer la valeur d'un script (résultat de exit ), il y a deux méthodes :
1) lancer avec runwait qui va retourner la valeur d'exit du script, mais vas attendre la fin de ce dernier avant de passer à la suite
2) lancer avec Run, qui renvoie le PID du script lancé. Pour guetter la fin de ce script, il faut tester via une boucle infinie ou de temps en temps via un adlibenanle si le PID en question existe toujours (processexist(pid)). Puis récuoérer la valeur :
sous méthodes :
2.1 - écrire dans un fichier/registrie, autre endroit du disque le résultat pour le lire après dans le script principal
2.2 - passer un pointeur au deuxième script lancer pour y mettre la vameur en question (voir partie tuto sur l'accès des vaeur en RAM direct fait par bibi (grosse pub ^^))
Toi qui cherche à mettre le doigt sur la solution, appuie sur F1.
fred
Niveau 2
Niveau 2
Messages : 24
Enregistré le : ven. 11 avr. 2008 15:07
Status : Hors ligne

Re: [..] Script qui retourne une valeur

#7

Message par fred »

Bonjour a tous,
Merci beaucoup Sylvanie pour ta réponse.....j'ai pas encore testé mais je pense que cela devrait être ok maintenant....
merci encore.
fred
Niveau 2
Niveau 2
Messages : 24
Enregistré le : ven. 11 avr. 2008 15:07
Status : Hors ligne

Re: [..] Script qui retourne une valeur

#8

Message par fred »

Bonjour,

je suis en train de tester le runwait....
mais je rencontre un probleme, ...en esperant que quelqu'un ait rencontré la meme chose....

Script1

Code : Tout sélectionner

For $t = 2 To $CmdLine[0]

; traitementss....

runwait(script2 param)
Next
 
script 2

Code : Tout sélectionner

;traitements dont un clic sur une boite de dialogue de choix de chemin..
 
mon probleme : lorsque j'appele le script2 tout seul cela fonctionne bien..le chemin est selectionné et clic ok.....mais en revanche, lorsque je lance le script2 par le runwait du script1...lorsque la boite de dialogue de selection du chemin s'affiche...il y a n création de nouveau dossier.....
le comportement n'est pas le meme.....
Une personnes peut elle m'aider, ou me dire pourquoi.?...
merci par avance de vos réponses..
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11784
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Script qui retourne une valeur

#9

Message par Tlem »

Puisque vous maîtrisez le script 1 et le script 2, pourquoi ne mettez vous pas les instructions du script 2 dans une fonction, puis dans le script 1 vous rajoutez la ligne :

Code : Tout sélectionner

#Include <script2.au2>
Il vous suffira alors de lancer la fonction du script2 à partir du script1.
De plus cela vous permettra d'avoir une communication entre les 2 scripts, et de retourner des valeur très facilement !
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Répondre