Cómo traducir estos comandos a AppleScript

0

No soy muy experto en tecnología y acabo de escuchar acerca de AppleScript que puede automatizar algunos tipos de escritura simples para mí. Sólo quiero escribir continuamente en un bucle. ¿Podría alguien ayudarme, por favor, a traducir las instrucciones a continuación en un bucle de AppleScript? ¡Lo aprecio mucho!

click the right arrow key
delay 2 seconds
type "l"
delay 2 seconds
type "c"
delay 2 seconds
type "cool!"
delay 2 seconds
hit return
delay 2 seconds
hit escape
delay 2 seconds
repeat this whole thing

¿Puede alguien ayudarme con eso? Más información de fondo: ya estoy en el programa, así que no necesito esto para abrirlo. Solo necesito la secuencia de comandos para ir inmediatamente a la derecha y luego comenzar a escribir.

¡Por favor ayuda! ¡Muchas gracias!

    
pregunta James 29.03.2017 - 06:56

2 respuestas

1

En primer lugar, tenga cuidado con este tipo de cosas. La automatización del sistema que utiliza algo como un teclado virtual como este puede llevar a efectos secundarios desafortunados si terminas enviando pulsaciones de teclas a un objetivo no deseado.

Sin embargo, aquí:

repeat
    tell application "TextEdit"
        activate
        tell application "System Events" to key code 124
        delay 2
        tell application "System Events" to keystroke "l"
        delay 2
        tell application "System Events" to keystroke "c"
        delay 2
        tell application "System Events" to keystroke "cool!"
        delay 2
        tell application "System Events" to keystroke return
        delay 2
        tell application "System Events" to key code 53
        delay 2
    end tell
end repeat

Revisemos este código:

Primero, estamos haciendo una simple repetición sin fin. Esta no es una buena idea, pero la pediste y eso es lo que obtienes. Si solo deseara un número finito de veces, podría agregar # times después de repeat . Ej: repeat 3 times . Hay muchas otras metodologías para repeat más allá de esta respuesta.

Luego, va a crear un bloque tell y activate a la aplicación a la que le está enviando estos comandos. Si no lo haces, estarás enviando pulsaciones de teclado a cualquier cosa que sea la aplicación activa en ese momento.

Luego, hará una serie de tareas para que la aplicación "Eventos del sistema" emule una pulsación de tecla y la demora para un conteo. delay acepta decimales así como números enteros por número de segundos. Tenga en cuenta que para la flecha derecha y el escape utilicé key code 124 y key code 53 respectivamente. La lista de códigos clave se puede encontrar en varias ubicaciones en línea con una búsqueda en Google de 'códigos clave de applecript'. Aquí hay uno actual en el momento en que se escribió esta respuesta: enlace

Finalmente, finalizarás el bloque tell , ya no enviarás AppleScript a "TextEdit" y luego finalizarás tu bloque repeat .

    
respondido por el EricDAltman 29.03.2017 - 08:12
0

Sin el script completo (y el contexto detrás de esto) es un poco difícil estar seguro de una respuesta, especialmente una eficiente .

Sin embargo, a continuación hay algo que puede ayudar (aunque ahora no estoy frente a una computadora con la que puedo probarlo):

tell application "System Events" to keystroke (key code 124) -- right
delay 2
tell application "System Events" to keystroke "1"
delay 2
tell application "System Events" to keystroke "c"
delay 2
tell application "System Events" to keystroke "cool!"
delay 2
-- simulate pressing the Return/Enter key
tell application "System Events" to keystroke (key code 36)
delay 2
-- simulate pressing the ESC key
tell application "System Events" to keystroke (key code 53)
delay 2

Ahora, dependiendo de su script general, es posible que no necesite todas las líneas tell application "System Events" to .

Además, cada clave tiene un carácter, un código ASCII, un código hexadecimal y un código decimal. He intentado comentar la secuencia de comandos anterior para explicar a qué equivalen los códigos de clave (por ejemplo, el código de clave 53 se refiere al código decimal para la tecla ESC).

Déjame saber cómo te va.

    
respondido por el Monomeeth 29.03.2017 - 08:08

Lea otras preguntas en las etiquetas