[R] Petit script qui tourne en boucle

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
zilly
Niveau 2
Niveau 2
Messages : 17
Enregistré le : mer. 14 janv. 2009 15:00
Status : Hors ligne

[R] Petit script qui tourne en boucle

#1

Message par zilly »

Bonjour a tous,

Voila, je travaille sur un nouveau script.

Ce script serait en faite tout le temps actif sur mon PC, et s'exécuterait lorsque je tape une touche de mon clavier.

Pour le moment sur ma Base j'ai sa :

Code : Tout sélectionner

#include <Misc.au3>

While 1
If _IsPressed("2") Then

Send("{F2}")
Send("{F5}")
sleep(2000)
Send("{F1}")

EndIf
Sleep(10)
WEnd
 
Sauf que petit soucis, mon script tourne en boucle, et n'attend pas que je presse la touche "2" de mon clavier pour s'exécuter, ce qui pour moi est la ligne :

Code : Tout sélectionner

If _IsPressed("2") Then
 
Traduis pour moi par : Si la touche "2" est saisit, alors => .

Donc ma première question serait que ce script s'exécute quand je le demande, quelle chose je doit modifier pour que sa marche.

Sinon une deuxième question : Peut - on mettre dans ce script plusieurs raccourcis et exécution du même type?

A chaque fois refaire un If ?

Merci de votre aide.
Steph
Niveau 3
Niveau 3
Messages : 38
Enregistré le : sam. 21 févr. 2009 17:53
Status : Hors ligne

Re: [..] Petit script qui tourne en boucle

#2

Message par Steph »

Salut,

voilà une base plus propre ! et qui t'évitera de tourner avec des If Then... si t'a des questions n'hésite pas.

Code : Tout sélectionner

While 1
    Select
        ; action quand on presse "2"
        Case _IsPressed("2")
            Send("{F2}")
            Send("{F5}")
            Sleep(2000)
            Send("{F1}")
        ; action quand on presse "3"
        Case _IsPressed("3")
        
        ; action quand on presse "4"        
        Case _IsPressed("4")

        ; action quand on presse "5"
        Case _IsPressed("5")

        ; action quand on presse "6"
        Case _IsPressed("6")

        ; action quand on presse "7"
        Case _IsPressed("7")
    EndSelect
WEnd
Avatar du membre
sylvanie
Niveau 11
Niveau 11
Messages : 1556
Enregistré le : jeu. 26 juil. 2007 21:31
Localisation : Paris
Status : Hors ligne

Re: [..] Petit script qui tourne en boucle

#3

Message par sylvanie »

Bonsoir,
c'est normal, car _ispressed prends en arg la valeur hexadécimal de la touche préssée, et non son symbole. Ainsi pour la touche 2 du pavé numérique il s'agit de :
If _IsPressed("62") Then
....

cf aide pour les autres touches
Toi qui cherche à mettre le doigt sur la solution, appuie sur F1.
zilly
Niveau 2
Niveau 2
Messages : 17
Enregistré le : mer. 14 janv. 2009 15:00
Status : Hors ligne

Re: [..] Petit script qui tourne en boucle

#4

Message par zilly »

Steph a écrit :Salut,

voilà une base plus propre ! et qui t'évitera de tourner avec des If Then... si t'a des questions n'hésite pas.

Code : Tout sélectionner

While 1
    Select
        ; action quand on presse "2"
        Case _IsPressed("2")
            Send("{F2}")
            Send("{F5}")
            Sleep(2000)
            Send("{F1}")
        ; action quand on presse "3"
        Case _IsPressed("3")
        
        ; action quand on presse "4"        
        Case _IsPressed("4")

        ; action quand on presse "5"
        Case _IsPressed("5")

        ; action quand on presse "6"
        Case _IsPressed("6")

        ; action quand on presse "7"
        Case _IsPressed("7")
    EndSelect
WEnd

Yop, merci de ta réponse, mais sa marche pas.

Quand je tape 2, sa ne s'exécute pas, par contre je fait un click droit souris, et sa s'exécute.

Soucis avec sa ?

PS : J'ai test avec ta solution Sylvanie et sa ne fonction pas non plus.

Mon programe maintenant :

Code : Tout sélectionner

 
#include <Misc.au3>


While 1
    Select
        ; action quand on presse "2"
        Case _IsPressed("62")
            Send("{F2}")
            Send("{F5}")
            Sleep(2000)
            Send("{F1}")
        ; action quand on presse "3"
        Case _IsPressed("3")
       
        ; action quand on presse "4"       
        Case _IsPressed("4")

        ; action quand on presse "5"
        Case _IsPressed("5")

        ; action quand on presse "6"
        Case _IsPressed("6")

        ; action quand on presse "7"
        Case _IsPressed("7")
    EndSelect
WEnd
 
Modifié en dernier par zilly le ven. 27 mars 2009 20:06, modifié 1 fois.
Steph
Niveau 3
Niveau 3
Messages : 38
Enregistré le : sam. 21 févr. 2009 17:53
Status : Hors ligne

Re: [..] Petit script qui tourne en boucle

#5

Message par Steph »

sylvanie a écrit :Bonsoir,
c'est normal, car _ispressed prends en arg la valeur hexadécimal de la touche préssée, et non son symbole. Ainsi pour la touche 2 du pavé numérique il s'agit de :
If _IsPressed("62") Then
....

cf aide pour les autres touches
re !

voilà le pourquoi du comment ! va voir l'aide/doc d'_ispressed pour plus d'info

Code : Tout sélectionner

#include <Misc.au3>

While 1
    Select
        ; action quand on presse "2"
        Case _IsPressed("62")
            Send("{F2}")
            Send("{F5}")
            Sleep(2000)
            Send("{F1}")
        ; action quand on presse "3"
        Case _IsPressed("valeur de 3 héxa")
       
        ; action quand on presse "4"       
        Case _IsPressed("valeur de 4 héxa")

        ; action quand on presse "5"
        Case _IsPressed("valeur de 5 héxa")

        ; et tu continue.........
    EndSelect
WEnd
zilly
Niveau 2
Niveau 2
Messages : 17
Enregistré le : mer. 14 janv. 2009 15:00
Status : Hors ligne

Re: [..] Petit script qui tourne en boucle

#6

Message par zilly »

hum toujours pas sa.

Peut - être ceci est dut au fait que je suis sur PC portable, donc pas de clavier numérique.

Ce que j'entends par "2" ou "62" en Héxa, c'est plutôt la touche "é".

Cependant je met cette touche et sa ne fonctionne toujours pas, faudrait - il mettre "é" en héxadécimal ?
Steph
Niveau 3
Niveau 3
Messages : 38
Enregistré le : sam. 21 févr. 2009 17:53
Status : Hors ligne

Re: [..] Petit script qui tourne en boucle

#7

Message par Steph »

re,

sinon teste comme ça au cas ou ? mais je doute que la syntax joue un rôle dans le faite que ça fonctionne pas...

Code : Tout sélectionner

#include <Misc.au3>

While 1
        ; tes actions a effectuer quand tu clic sur 2
        If _IsPressed("62") Then
            Send("{F2}")
            Send("{F5}")
            Sleep(2000)
            Send("{F1}")
        EndIf
        ; action quand on presse "3"
        If _IsPressed("valeur de 3 héxa") Then
            ; tes actions a effectuer quand tu clic sur 3
        EndIf
        ; action quand on presse "4"
        If _IsPressed("valeur de 4 héxa") Then
            ; tes actions a effectuer quand tu clic sur 4
        EndIf
        ; et tu continue.........
WEnd
Modifié en dernier par Steph le ven. 27 mars 2009 21:11, modifié 1 fois.
zilly
Niveau 2
Niveau 2
Messages : 17
Enregistré le : mer. 14 janv. 2009 15:00
Status : Hors ligne

Re: [..] Petit script qui tourne en boucle

#8

Message par zilly »

Re, merci pour ton aide, seulement erreur dans le code qui me retourne :

Line 4 ()

Select

Error : " select" statement is missing "Endselect" or "Case" statement
Avatar du membre
sylvanie
Niveau 11
Niveau 11
Messages : 1556
Enregistré le : jeu. 26 juil. 2007 21:31
Localisation : Paris
Status : Hors ligne

Re: [..] Petit script qui tourne en boucle

#9

Message par sylvanie »

Le monsieur il a dit :
touche 2 du pavé numérique

et l'aide dit :
32 2 key

donc le é => "32"
...
Toi qui cherche à mettre le doigt sur la solution, appuie sur F1.
Steph
Niveau 3
Niveau 3
Messages : 38
Enregistré le : sam. 21 févr. 2009 17:53
Status : Hors ligne

Re: [..] Petit script qui tourne en boucle

#10

Message par Steph »

zilly a écrit :Re, merci pour ton aide, seulement erreur dans le code qui me retourne :

Line 4 ()

Select

Error : " select" statement is missing "Endselect" or "Case" statement
Salut,

excuse, voilà: (avec touche 2 = 32 apparemment)

Code : Tout sélectionner

#include <Misc.au3>

While 1
        ; tes actions a effectuer quand tu clic sur 2
        If _IsPressed("32") Then
            Send("{F2}")
            Send("{F5}")
            Sleep(2000)
            Send("{F1}")
        ElseIf _IsPressed("valeur de 3 héxa") Then
            ; tes actions a effectuer quand tu clic sur 3
        ElseIf _IsPressed("valeur de 4 héxa") Then
            ; tes actions a effectuer quand tu clic sur 4
        Else
               
        EndIf
        ; et tu continue.........
WEnd
ou comme avant mais fonctionnel (j'avais oublier d'enlever le select et sont end !)

Code : Tout sélectionner

#include <Misc.au3>

While 1
        ; tes actions a effectuer quand tu clic sur 2
        If _IsPressed("32") Then
            Send("{F2}")
            Send("{F5}")
            Sleep(2000)
            Send("{F1}")
        EndIf
        ; action quand on presse "3"
        If _IsPressed("valeur de 3 héxa") Then
            ; tes actions a effectuer quand tu clic sur 3
        EndIf
        ; action quand on presse "4"
        If _IsPressed("valeur de 4 héxa") Then
            ; tes actions a effectuer quand tu clic sur 4
        EndIf
        ; et tu continue.........
WEnd
mais à mon avis la meilleure syntax reste avec les Case et select comme je t'ait filer precedemment mais test ! avec le 2 est 32 !
zilly
Niveau 2
Niveau 2
Messages : 17
Enregistré le : mer. 14 janv. 2009 15:00
Status : Hors ligne

Re: [..] Petit script qui tourne en boucle

#11

Message par zilly »

Sa marche nickel et je te remercie.
Répondre