2 votos

Cómo hacer que Automator inserte "AW" en una nota de Stickies

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


-- Tipo 'AW'

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

-- Pulse Return

    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 Privacidad, Privacidad he permitido que Automator.app y Stickies.app controlen mi ordenador.

He guardado el ejemplo anterior como un servicio y he probado a ejecutar el servicio en una nota de Stickies vacía. No ocurrió nada.

Soy nuevo en el intento de utilizar Automator. Se trata de una acción tan sencilla que creo que he entendido algo mal.

Si añado al flujo de trabajo una acción de Automator existente que inicie la aplicación Stickies, entonces sí se inserta "AW", seguido de "Return".

Pregunta ¿Cómo crear una simple macro de teclado con Automator? muestra un Applescript mucho más sencillo que podría adaptarse para hacer 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?

1voto

user3439894 Puntos 5883

El Stickies aplicación no es scriptable lo que significa que no apoya directamente AppleScript a través de un Diccionario Stickies AppleScript por lo que la mayor parte de la codificación va a utilizar Eventos del sistema y lo que generalmente se conoce como Guiones de interfaz de usuario para manipular el Stickies app.

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

  • Abrir Stickies.app y, si ya está abierto, llévalo al frente.
  • Crear una nueva nota de Stickies.
  • Mover la nueva nota en la esquina superior izquierda de la pantalla y establece su tamaño por defecto.
  • Tipo "AW" y "return", donde "return" simula la pulsación de 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 puede colocarse en un Ejecutar AppleScript acción en un Servicio de automatización flujo de trabajo .


Nota: Uno de los inconvenientes de Guiones de interfaz de usuario es a veces el uso necesario de la delay comando para garantizar la Dirigido a Elemento de interfaz de usuario está disponible para actuar. Es posible que tenga que ajustar el valor de cualquier delay comando y o añadir/eliminar elementos adicionales delay comandos según se necesite/se desee a través de cualquier Guiones de interfaz de usuario escenario. El ejemplo código arriba, tal cual, funcionó en mi sistema. Si es necesario, utilice el delay comando y ajustar su valor como/donde se necesite/desee.

También el ejemplo anterior código no emplea ninguna forma de tratamiento de errores y sólo pretende mostrar cómo el individuo eventos se puede codificar para lograr el objetivo. El usuario siempre tiene la responsabilidad de añadir/utilizar los tratamiento de errores según se necesite/se desee.

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