2 votos

AppleScript se ejecuta en Automator, pero falla cuando se lanza a través de un acceso directo

Tengo el siguiente AppleScript en un servicio utilizando Run AppleScript en Automator:

on run {input, parameters}
    set date_ to short date string of (current date)
    tell application "System Events"
        keystroke date_
    end tell
end run

Está configurado para no recibir ninguna entrada en ninguna aplicación, y la salida sustituye al texto. Si pongo el cursor en la ventana de edición en Automator y hago clic en el botón de ejecución, funciona, y obtengo la salida, por ejemplo

...
end run8/15/18

Lo he vinculado a un atajo de teclado (Propiedades del Sistema -> Teclado -> Atajos -> seleccionar mi script y vincular una combinación de teclas). Sin embargo, cuando presiono la combinación de teclas, independientemente de la aplicación, obtengo brevemente (1-2 segundos) un pequeño engranaje giratorio en la barra de menú, y el siguiente error en la consola:

Se ha detectado que faltan restricciones para <privado>. No se puede colocar porque no hay suficientes restricciones para definir completamente el tamaño y el origen. Añada las restricciones que faltan, o establezca translatesAutoresizingMaskIntoConstraints=YES y las restricciones se generarán por usted. Si esta vista se diseña manualmente en MacOS 10.12 y posteriores, puede optar por no llamar a [super layout] desde su anulación. Establezca un breakpoint en DETECTED_MISSING_CONSTRAINTS para depurar. Este error sólo se registrará una vez.

La fecha no se añade a ninguna aplicación en la que haga esto. He visto a otra persona con un problema similar aquí ( https://www.alfredforum.com/topic/10311-applescripts-no-longer-work-script-editor-no-responde-en-sierra/ ) pero tampoco obtuvieron respuesta. Esto es confuso, ya que parece estar relacionado con el renderizado de ventanas, pero no tengo elementos GUI en mi script, AFAIK.

Estoy corriendo:

Mac OS Sierra 10.12.6 (16G1510)
Automator Version 2.7 (428)

Ok, mientras investigaba para este post encontré este post( https://superuser.com/questions/153890/assign-a-shortcut-to-running-a-scripten-os-x/264943 ) que afirma que hay un error que impide que los servicios del sistema se ejecuten después de Snow Leopard. ¿Alguien conoce una solución sin herramientas de terceros?

1voto

aaplmath Puntos 599

He conseguido que funcione guardando el AppleScript como una aplicación separada, y luego creando un servicio de Automator que simplemente lanza esa aplicación. Estos son los pasos:

  • Crea un nuevo AppleScript en el Editor script y pega el siguiente código (el tuyo, pero con un ligero añadido):

    on run
        set date_ to short date string of (current date)
        tell application "System Events"
            set visible of (first process where it is frontmost) to false -- return focus to initiating app
            delay 0.1 -- make sure the application has had time to regain focus—if the script doesn't work, try upping this value a little
            keystroke date_
        end tell
    end run
  • Guarda el script como un Application .

  • Cree un nuevo servicio en Automator y añada un Launch Application acción. Establece la aplicación a la que acabas de guardar desde el Editor de script.

  • Vincular un atajo de teclado a esa acción de Automator.

No puedo verificar que funcione en Sierra, pero sí en High Sierra 10.13.6.

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