1 votes

Peut-AppleScript appuyer automatiquement sur une touche pour moi dans une application?

Je suis en train d'essayer de concevoir un AppleScript qui appuiera automatiquement sur la touche fléchée droite pendant 1 seconde, puis sur la touche fléchée gauche pendant 1 seconde et répétera cela en boucle jusqu'à ce que je l'interrompe.

Voici ce que j'ai concocté jusqu'à présent, mais ce n'est pas tout à fait fonctionnel :

tell application "VisualBoyAdvance"
    repeat 100 times
        tell application "VisualBoyAdvance" to keystroke "124"
        delay 1
    end repeat     
end tell

2voto

Vous pourriez répéter les commandes de code clé jusqu'à ce que l'application la plus en avant change :

delay 1
activate application "TextEdit"
tell application "System Events"
    repeat while (path to frontmost application) is (path to application "TextEdit")
        repeat 3 times
            key code 123
            delay 0.3
        end repeat
        repeat 3 times
            key code 124
            delay 0.3
        end repeat
    end repeat
end tell

Des délais plus courts (y compris 0,2 secondes) rendaient difficile l'arrêt du script. J'ai dû maintenir pour forcer la fermeture de TextEdit.

Cela s'est déplacé vers la gauche uniquement une fois :

delay 1
tell application "System Events"
    key down (character id 28)
    delay 5
    key up (character id 28)
  • gauche : 123 / 28
  • droite : 124 / 29
  • bas : 125 / 31
  • haut : 126 / 30

1voto

Matthieu Riegler Points 20160

J'ai juste fait quelques tests : AppleScript n'est pas bien adapté à ce que vous demandez car c'est monothread. Par conséquent, sortir de la boucle dans une telle situation ne semble pas possible.

Voici un code qui fait ce que vous voulez mais sans sortir de la boucle.

tell application "VisualBoyAdvance" to activate
repeat while true
    set mydate to current date
    repeat while ((current date) - mydate < 1)
        tell application "System Events" to keystroke (key code 124) -- droite
    end repeat
    repeat while ((current date) - mydate < 1)
        tell application "System Events" to keystroke (key code 123) -- gauche

`

Si vous l'exécutez, cela bloquera l'ordinateur en envoyant trop d'événements.

`

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X