Cómo hacer que Automator inserte “AW” en una nota adhesiva

3

Intenté usar "Watch Me Do" en Automator para insertar el texto "AW" y "Return" en una nota adhesiva. Registró lo siguiente (los eventos fueron "Tipo 'AW'" y "Presión de retorno", el resto es la expansión en el código):

- Escribe 'AW'

    delay 0.315949
    set timeoutSeconds to 2.000000
    set uiScript to "keystroke \"AW\""
    my doWithTimeout( uiScript, timeoutSeconds )

- Presiona Retorno

    delay 2.538645
    set timeoutSeconds to 2.000000
    set uiScript to "keystroke \"
    \" "
    my doWithTimeout( uiScript, timeoutSeconds )

    on doWithTimeout(uiScript, timeoutSeconds)
        set endDate to (current date) + timeoutSeconds
        repeat
            try
                run script "tell application \"System Events\"
    " & uiScript & "
    end tell"
                exit repeat
            on error errorMessage
                if ((current date) > endDate) then
                    error "Can not " & uiScript
                end if
            end try
        end repeat
    end doWithTimeout

En Preferencias del sistema, Seguridad y amp; Privacidad, Privacidad Permití que Automator.app y Stickies.app controlen mi computadora.

Guardé el ejemplo anterior como un servicio e intenté ejecutar el servicio en una nota vacía. No pasó nada.

Soy nuevo en tratar de usar Automator. Esta es una acción tan simple que creo que he entendido mal algo.

Si agrego al flujo de trabajo una acción de Automator existente que inicia la aplicación Stickies, entonces se inserta "AW", seguido de "Volver".

Pregunta Cómo crear una macro de teclado simple con ¿Automator? muestra un Applescript mucho más simple que podría adaptarse a lo que describo (lo he hecho), pero me frustra que mi simple "Watch Me Do" no funcione. ¿Qué estoy pasando por alto o no entiendo?

    
pregunta Alan Wehmann 10.06.2017 - 01:19

1 respuesta

1

La aplicación Stickies no es compatible con scripts , lo que significa que no admite directamente AppleScript a través de un Stickies AppleScript Dictionary , por lo que la mayoría de la codificación usará Eventos del sistema y lo que generalmente se conoce como UI Scripting para manipular la aplicación Stickies

El ejemplo código a continuación hará lo siguiente:

  • Open Stickies.app y, o si ya está abierto, llévalo al frente.
  • Crea una nueva nota adhesiva.
  • Mueve la nueva nota a la esquina superior izquierda de la pantalla y establece su tamaño en el tamaño predeterminado.
  • Escriba "AW" y "retorno", con "return" simulando que se presiona la tecla Enter.
tell application "Stickies"
    activate
    delay 1
end tell
tell application "System Events"
    keystroke "n" using command down
    set properties of window 1 of application process "Stickies" to {position:{0, 23}, size:{300, 200}}
    keystroke "AW" & return
end tell

Este AppleScript código se puede colocar en una Ejecutar AppleScript en un Automator Service flujo de trabajo .

Nota: Uno de los inconvenientes de UI Scripting , es a veces el uso necesario del comando delay para garantizar el < em> target Elemento UI está disponible para ser ejecutado. Es posible que tenga que ajustar el valor de cualquier comando delay o agregar / eliminar delay comandos según sea necesario / buscado a través de cualquier UI Scripting escenario. El ejemplo código anterior, tal como está, funcionó en mi sistema. Si es necesario, utilice el comando delay y ajuste su valor según / donde sea necesario / deseado.

También el ejemplo anterior código no emplea ninguna forma de manejo de errores absoluto y solo pretende mostrar cómo los eventos individuales pueden ser Codificado para lograr el objetivo. La responsabilidad recae siempre sobre el Usuario para agregar / usar el manejo de errores según sea necesario / deseado.

    
respondido por el user3439894 13.06.2017 - 19:59

Lea otras preguntas en las etiquetas