Page 1 sur 1

[R] Stopper une action sans fermer le script

Posté : mer. 16 déc. 2009 03:37
par Mikaas
Bonjour encore moi :oops:

Voila un autre souci mineur

Je souhaiterai savoir comment stopper une action sans arrete totalement le script en cours...
► Afficher le texte
J'appuy sur F1 mon action commence
je cherche la formule pour arreter l'action apres avoir de nouveau appuyé sur F1
sans fermer par "exit" que je puisse appuy encore sur F1 plutart pour le relancer...

j'ai essayé avec Do...Unstil j'ai pas réussi :(

Merci a vous :)

Re: [..] Stopper une action sans fermer le script

Posté : mer. 16 déc. 2009 04:23
par orax
J'ai fait ça comme ça :

Code : Tout sélectionner

Global $a=False

HotKeySet("{F1}", "START")

While 1
    Sleep(10)
WEnd

Func START()
    If $a Then
        $a=False
        Return
    Else
        $a=True
    EndIf
    While $a
        ConsoleWrite(Random(1,10000,1)&@LF)
        Sleep(1)
    WEnd
EndFunc   ;==>START

Re: [..] Stopper une action sans fermer le script

Posté : mer. 16 déc. 2009 06:18
par Mikaas
Merci mais a défaut de paraitre stupid je ne vois pas trop ou mettre mon script sachant que jai beaucoup d'autre action j'aurai plutot voulu une func propre a elle meme si c'etait possible ou y incluant "Mon script" histoire de m'y retrouver.

Re: [..] Stopper une action sans fermer le script

Posté : mer. 16 déc. 2009 09:32
par Tlem
Tirez et adapté d'un exemple du forum, il est possible de faire quelque chose dans ce genre :
► Afficher le texte

Re: [..] Stopper une action sans fermer le script

Posté : mer. 16 déc. 2009 11:13
par Mikaas
il me fait bien les traytip mais pas la pause peu etre un souci dans le reste de mon code ?
► Afficher le texte
ou peu etre que l'ordre des phrases sont importantes non ?

Re: [..] Stopper une action sans fermer le script

Posté : mer. 16 déc. 2009 11:53
par Tlem
Pourquoi dites-vous qu'il ne fait pas la pause ?

Sans doute parce que si vous appuyez sur F1 ou F2 le code s'effectue.
Hé bien c'est tout à fait normal puisque votre code est assujettit aux HotKeySet. :roll:
La pause ne fonctionne que pour le reste du code et en l'occurrence il s'agit de la boucle While principale.

Si votre but est de désactiver l'utilisation de F1 et F2 et au vue de votre code, vous devez ajouter l'activation/la désactivation des HotKeySet dans la fonction TogglePause() en remplacement de la boucle While et de la gestion de $Flag.

Re: [..] Stopper une action sans fermer le script

Posté : mer. 16 déc. 2009 12:55
par Mikaas
Mikaas a écrit : J'appuy sur F1 mon action commence
je cherche la formule pour arreter l'action apres avoir de nouveau appuyé sur F1
sans fermer par "exit" que je puisse appuy encore sur F1 plutart pour le relancer...
je sais pas si je m'etais mal exprimé désolé :oops:

mon but etant de lancer mon action en appuyant sur F1 (l'action se produit en boucle) puis arreter cette boucle par l'appuye de la touche F1 de nouveau sans pour autant arreter le script totalement ( dont Exit ).

Re: [..] Stopper une action sans fermer le script

Posté : mer. 16 déc. 2009 13:15
par Tlem
Dans l'état de votre script, cela n'est pas possible.
Lorsque celui-ci fait la pause (Sleep(100 * $T1)) il ne fera rien d'autre.
Sinon rajoutez après la pause une détection de l'état (en pause ou non) afin de faire l'action correspondante.

Re: [..] Stopper une action sans fermer le script

Posté : mer. 16 déc. 2009 13:29
par Mikaas
arf satané sleep :(
je vais essayer de trouver ça merci :)