[R] Quitter le script avec une touche

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Kurdy
Niveau 2
Niveau 2
Messages : 17
Enregistré le : dim. 13 janv. 2008 13:40
Status : Hors ligne

[R] Quitter le script avec une touche

#1

Message par Kurdy »

Bonjour à tous et à toutes

J'ai un petit problème, j'ai fais un script sans passer par la GUI que je ne maitrise absolument pas, et j'aimerais permettre à l'utilisateur de quitter ce script en pressant une simple touche.
En l'occurence la touche "x"

J'ai voulu faire une boucle qui "attend" qu'on presse cette touche, le problème c'est que je ne crois pas qu'on puisse faire deux boucles qui fonctionnent en même temps, et du coup cette première boucle cessait de fonctionner dès qu'une autre était mise en route.

Du coup en errant sur le net je suis tombé sur la fonction "AdlibEnable".
Mais je crois que je ne l'ai pas comprise...

Voici ce que j'ai fait:

En tout début du script:

AdlibEnable ("ToucheX") ; Appel de la fonction fin à la touche "X"

Code : Tout sélectionner


AdlibEnable ("ToucheX") ; Appel de la fonction fin à la touche "X"

; Fonction terminer le script à la touche "X"

func ToucheX()
         While 1
$fin= _IsPressed(58)
 If $fin= 1 Then
     $restartdl= Msgbox (4, "Bot", "Mon message") ; Le script demande s'il doit effacer ou non une ligne dans un fichier texte
     If $restartdl= 7 Then 
         _FileWriteToLine($file, 1,"", 1)
         Exit
     Else
         sleep (100)
     EndIf
 else 
     sleep (100)
 EndIf
 WEnd
    AdlibDisable()
EndFunc
Le problème c'est que lorsque je lance le script, il ne se passe rien, en fait, il attend que j'appuie sur la touche "x" sans commencer à faire le reste... Qu'est ce que j'ai raté?
J'ai essayé de mettre la première ligne au début du script et le reste a la fin, après le "exit" mais pareil, aucun résultat...
Modifié en dernier par Kurdy le jeu. 17 sept. 2009 22:36, modifié 4 fois.
Avatar du membre
Iste
Niveau 11
Niveau 11
Messages : 1870
Enregistré le : jeu. 04 déc. 2008 14:21
Localisation : 76
Status : Hors ligne

Re: Quitter le script avec une touche

#2

Message par Iste »

Salutations,

Comme la présentation de votre message ne correspond pas aux règles de présentation des messages il nous est hélas impossible d'y répondre. D'autan plus dommage que la réponse est simple et que nombre d'entre nous l'ont. Peut etre qu'en éditant le titre... et en passant lire les règles générales du forum si ce n'est déja fais... car bon, 9em message quand meme !
Signez ici
Avatar du membre
Iste
Niveau 11
Niveau 11
Messages : 1870
Enregistré le : jeu. 04 déc. 2008 14:21
Localisation : 76
Status : Hors ligne

Re: [..] Quitter le script avec une touche

#3

Message par Iste »

Haaaa, c'est bien mieux :D
Alors, pour faire deux boucle a l'aide de AdlibEnable, il faut procéder comme ceci

Code : Tout sélectionner

AdlibEnable("boucle") ; on lance la vérification périodique

While 1
    ;la boucle principal
WEnd

Func boucle()
    ;ceci sera joué périodiquement
EndFunc
Toute foi, je ne pense pas qu'il s'agisse de la meilleur solution (lente et lourde)
Avez vous regardé du coté de HotKeySet() ?
Certe cette fonction "monopolise" une touche, mais peut également s'appliquer pour une combinaison de touche !
Aussi, ce code peut peut etre vous plaire :

Code : Tout sélectionner

HotKeySet("^!{esc}","quitter")

While 1
    ;la boucle principal
WEnd


Func quitter()
    Exit
EndFunc
Pour quitter, il faut donc faire CTRL+ALT+ESC, ce qui est plutot pas mal, car je ne connais pas d'autre logiciel que cette fonction pourrait gêner, et meme si, a vous de trouver d'autres combinaisons ^^
Signez ici
Kurdy
Niveau 2
Niveau 2
Messages : 17
Enregistré le : dim. 13 janv. 2008 13:40
Status : Hors ligne

Re: [..] Quitter le script avec une touche

#4

Message par Kurdy »

Ah super merci bien!
C'est une commande bien utile!
Répondre