1 votos

¿Puede AppleScript pulsar automáticamente una tecla por mí en una aplicación?

Estoy tratando de crear un AppleScript que presione automáticamente la tecla de flecha derecha durante 1 segundo, luego la tecla de flecha izquierda durante 1 segundo y repita esto en un bucle sin fin hasta que lo interrumpa.

Esto es lo que se me ha ocurrido hasta ahora, pero no acaba de funcionar:

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

2voto

Podrías repetir los comandos de los códigos de las teclas hasta que la aplicación más frontal cambie:

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

Retrasos más cortos (incluso de 0,2 segundos) dificultaban la detención del script. Tuve que mantener pulsado ⌥⇧⌘⎋ para forzar la salida de TextEdit.

Esto se movió a la izquierda sólo una vez:

delay 1
tell application "System Events"
    key down (character id 28)
    delay 5
    key up (character id 28)
end tell
  • izquierda: 123 / 28
  • derecha: 124 / 29
  • abajo: 125 / 31
  • hasta: 126 / 30

1voto

Satanicpuppy Puntos 4902

Acabo de hacer algunas pruebas: AppleScript no es muy adecuado para lo que pides ya que es Single Threaded. Por lo tanto, salir del bucle en tal situación no parece posible.

Aquí hay un código que hace lo que quieres pero sin salir del bucle.

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) -- right
    end repeat
    repeat while ((current date) - mydate < 1)
        tell application "System Events" to keystroke (key code 123) -- left
    end repeat
end repeat

Si lo ejecutas congelará el ordenador al enviar demasiados eventos.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X