[R] Boucle et condition

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Theodoric
Niveau 1
Niveau 1
Messages : 9
Enregistré le : mer. 12 déc. 2007 15:16
Status : Hors ligne

[R] Boucle et condition

#1

Message par Theodoric »

Bonjour à tous,
Bien qu'ayant compulsé ce très bon forum dans moult sens , je n'ai pas trouvé la solution à mon problème qui pourrait bien être d'une simplicité étonnante, mais je sèche toujours:

En fait, j'éssaie de faire un script de time out pour une connexion VPN via ligne RTC et le but de mon script est qu'après une durée donnée, le script propose à l'utilisateur de déconnecter ou de rester connecté (c'est la condition, la boucle étant le temps de connexion).
Mon problème est que selon la syntaxe que j'emploie, lorsque l'utilisateur répond "yes" à la question "transmission terminée" ou qu'il ne répond pas durant 20 secondes, la connexion doit être coupée via l'executable "hangras.exe", le client VPN fermé et le script arrêté. Lorsqu'il clique sur "no", forcément, la boucle doit repartir pour la durée donnée et reposer cette question au bout du temps imparti.
Voici donc le bout du script qui fait défaut car dans le cas présent, lorsque je clique sur "yes" tout fonctionne correctement, mais si je clique sur "no" ou sur rien, la connexion est aussi arrêtée, le client fermé et le script se met en pause infinie...

Code : Tout sélectionner

...
$sortie = False
While $sortie = False
Sleep (60000) ; durée modifiable avant déconnexion
$choix = MsgBox(4, "Déconnexion en cours", "Transmission Terminée ?", 20)
If $choix = 6 and $choix <> 7 Then $sortie = True
    Run('"C:\HANGRAS.exe"')
    WinWait("VPN Client","messageBoxText")
    If Not WinActive("VPN Client","messageBoxText") Then WinActivate("VPN Client","messageBoxText")
    WinWaitActive("VPN Client","messageBoxText")
    Send("{ENTER}")
    WinClose("status: Disconnected | VPN Client - Version 4.8.01.0300")
    MsgBox(64, "Déconnexion réussie", "Vous avez été déconnecté du réseau", 5)   
WEnd
Exit
Je suis un peu dans le flou...si vous pouviez m'aider, ça serait vraiment cool.
Mille mercis d'avances

Théo
Modifié en dernier par arrkhan le jeu. 07 août 2008 17:14, modifié 2 fois.
Raison : Ajout de la balise [R] topic résolu
l'informatique n'est censé être composé à la base, que de 0 et de 1, et pourtant....
genaille08
Niveau 4
Niveau 4
Messages : 93
Enregistré le : sam. 03 mai 2008 01:27
Status : Hors ligne

Re: [..] Boucle et condition

#2

Message par genaille08 »

facile

place ca :
► Afficher le texteICI
dans une boucle infinie ICI
ce qui aura pour effet de reposer la question au bout de 6 sec a l'infinie

ensuite ca m'etonne que tu arrive a démarré ton script car la :

Code : Tout sélectionner

WEnd
ce n'est pas wend mais endif qu'il faut mettre
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11793
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Boucle et condition

#3

Message par Tlem »

J'aurais plutôt vu quelque chose comme ceci :
► Afficher le texte
Au départ j'étais parti sur AdlibEnable, car le Sleep bloque le script pendent la durée de la pause, mais comme je ne connais pas le code complet ...
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é".
Avatar du membre
moutelous
Niveau 6
Niveau 6
Messages : 229
Enregistré le : sam. 09 févr. 2008 19:51
Localisation : Rennes
Status : Hors ligne

Re: [..] Boucle et condition

#4

Message par moutelous »

Bonjour,

Première remarque:

Code : Tout sélectionner

If $choix = 6 and $choix <> 7
Si $choix = 6 alors il est forcément différent de 7 .... If $choix=6 est suffisant.

Deuxieme remarque, dans votre boucle "While" le "Then" du "If" ne met que la variable $sortie à true, le reste des commandes est pris en compte quel que soit la valeur de la variable $sortie.

Il faut donc judicieusement placer un "endif" dans votre code avant le "Wend".

A+
A+
Theodoric
Niveau 1
Niveau 1
Messages : 9
Enregistré le : mer. 12 déc. 2007 15:16
Status : Hors ligne

Re: [..] Boucle et condition

#5

Message par Theodoric »

Bonjour à tous et grand merci pour votre aide:
En fait j'ai retourné le problème et j'ai utilisé un autre type de boucle (do....until). En fait je suis parti de l'idée que tant que l'utilisateur ne cliquait pas sur "yes" à la question de déconnexion, il restait connecté mais l'obligeant malgré tout à cliquer sur oui ou non, sinon il était malgré tout déconnecté. Et je pense que c'était ça le plus délicat.

- Donc merci Genaille, c'est toi qui m'a mis sur la voie en me donnant le lien sur les boucles.

- merci Tlem. Ton script avec la fonction, somme toute difficile à comprendre pour moi était presque parfait bien qu'il ne déconnectait pas si on ne clique ni sur oui ni sur non et en plus le script ne s'arrêtait pas.
Et pour la raison que j'ai abordé au debut de ce post, la nécéssité de préciser que si $choix=6 ou <> 7 n'était pas si inutile que cela, puisque le 6 equivalant au oui et le 7 au non, je devais donc verifier que si on clique sur oui ou si on ne clique sur rien, le résultat devait être le même:
la déconnexion.

Pour vous remercier et peut-être aider quelqu'un par la suite voici le code obtenu:
► Afficher le texte
Encore une fois merci pour votre support à tous. Grâce à vous le problème est Résolu!!!!
l'informatique n'est censé être composé à la base, que de 0 et de 1, et pourtant....
genaille08
Niveau 4
Niveau 4
Messages : 93
Enregistré le : sam. 03 mai 2008 01:27
Status : Hors ligne

Re: [R] Boucle et condition

#6

Message par genaille08 »

et beh ... tout ca pour ca

nan je rigole ^^

derien
Répondre