0 votos

Cómo traducir estos comandos a AppleScript

No soy muy conocedor de la tecnología y acabo de oír hablar de AppleScript que puede automatizar algo de escritura simple para mí. Sólo quiero escribir continuamente en un bucle. ¿Podría alguien ayudarme a traducir las instrucciones de abajo en un bucle de AppleScript? Se lo agradezco 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 que esto me lo abra. Sólo necesito que el script se dirija inmediatamente a la derecha y luego empiece a escribir.

¡Por favor, ayuda! ¡Muchas gracias!

0 votos

Esos comandos debían ser uno por línea. ¡Pero todo está separado por "delay 2 seconds" en caso de que estés leyendo esto!

1 votos

Las preguntas en las que se pida código deben demostrar una comprensión mínima del problema que se está resolviendo. Incluya las soluciones intentadas, por qué no funcionaron y los resultados esperados.

1voto

EricDAltman Puntos 46

En primer lugar, ten cuidado con este tipo de cosas. La automatización del sistema utilizando 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

Repasemos este código:

En primer lugar, hacemos una simple repetición sin fin. Esto no es una buena idea, pero usted lo pidió y eso es lo que obtiene. Si quisieras sólo un número finito de veces, podrías añadir # times después de repeat . Ex: repeat 3 times . Hay muchas otras metodologías para repeat más allá de esta respuesta.

Entonces vas a crear un tell bloque y activate la aplicación a la que está enviando estos comandos. Si no lo haces, estarás enviando pulsaciones a cualquier aplicación que esté activa en ese momento.

A continuación, hará una serie de que la aplicación "Eventos del sistema" emule la pulsación de una tecla y se retrase durante un recuento. delay acepta tanto decimales como enteros para el número de segundos. Tenga en cuenta que para la flecha derecha y el escape he utilizado key code 124 y key code 53 respectivamente. La lista de códigos clave se puede encontrar en varios lugares en línea con una búsqueda en Google de "códigos clave de applescript". Aquí hay uno actual en el momento en que se escribió esta respuesta: http://eastmanreference.com/complete-list-of-applescript-key-codes/

Por último, terminará el tell bloque, dejando de enviar AppleScript a "TextEdit" y entonces terminará su repeat bloque.

0 votos

Puede generar el bloqueo de código de SE seleccionando su texto y ctrl/k - está en la Ayuda en la parte superior del espacio de respuesta.

0 votos

Se lo agradezco mucho y es increíblemente útil. Sin embargo, al intentar esto, los comandos no ocurren dentro del programa en el que quiero que ocurra. Si estoy en el programa 'ABC', ¿cómo me aseguro de que esta consulta ocurra en 'ABC'? ¿Tiene sentido esta pregunta?

0 votos

(Gracias Tetsujin, lo tendré en cuenta) A estas alturas, ya he ido más allá. Voy a tener que pedirte que investigues un poco sobre AppleScripting, James. Basta con decir que te gustará decir la aplicación en la que estás tratando de escribir en lugar de TextEdit como en mi ejemplo.

0voto

Monomeeth Puntos 139

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

Sin embargo, a continuación hay algo que puede ayuda (aunque ahora mismo no estoy delante de un ordenador con el que pueda 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 tu script global, puede que no necesites todos los tell application "System Events" to líneas.

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

Hazme saber cómo te va.

0 votos

Se lo agradezco mucho y es increíblemente útil. Sin embargo, al intentar esto, los comandos no ocurren dentro del programa en el que quiero que ocurra. Si estoy en el programa 'ABC', ¿cómo me aseguro de que esta consulta ocurra en 'ABC'? ¿Tiene sentido esta pregunta?

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