¿Cómo hacer que un archivo AppleScript existente funcione como un servicio?

8

Hice un AppleScript, lo guardé como un archivo en una carpeta específica en mi disco duro. Ahora quiero asignarle un acceso directo y parece que debo hacer un Servicio a través de Automator, pero Run AppleScript me pide que ingrese el código, mientras que quiero ejecutar el archivo .scpt ya existente. ¿Cómo hacer eso?

    
pregunta Nakilon 01.09.2013 - 18:11

6 respuestas

6

Sí, Automator es la mejor opción aquí. Para crear el servicio sigue estos pasos:

  1. Abre Automator y selecciona Servicio:

  2. Busque'applecript'yarrastrelaacciónalpanelderecho:

  3. Cambie Service receives selected text a Service receives no input para que aparezca siempre en el menú Servicios:

  4. Reemplaza(*Yourscriptgoeshere*)con:

    doshellscript"/usr/bin/osascript /path/to/your/script.scpt"
    

    si desea ejecutar su archivo .scpt existente. Tenga en cuenta que osascript no puede manejar la interacción del usuario como mostrar una ventana de diálogo:

    Parasuperarestalimitación,use esta solución temporal o simplemente reemplace (* Your script goes here *) con el contenido de su script.

  5. Guárdalo:

  6. Silodesea,puedeasignarunaccesodirectoasunuevoservicio.SeleccioneServiciosygt;PreferenciasdeserviciosenelFinder(oencualquieraplicaciónabierta):

  7. Asigna un atajo no tan común:

  8. Ahorapuedeaccederasuserviciodesdecualquieraplicaciónatravésdelaccesodirectoqueasignóenelpasoanterior:

Si alguna vez desea deshacerse del servicio, abra ~/Library/Services , elimine el servicio y vacíe la papelera:

    
respondido por el jaume 02.09.2013 - 10:29
4

En el script, agregue un argumento on run :

on run
    -- do whatever the script does
end run

Luego puede usar la acción "Ejecutar script de shell" de Automator, con el comando osascript :

osascript /path/to/script.scpt

osascript es un comando que ejecuta AppleScript en el shell. Necesita las líneas en el script para permitir que el script se ejecute fuera del editor de AppleScript.

    
respondido por el alexwlchan 01.09.2013 - 18:18
3

Tal vez le gustaría ver Este Servicio , que le permite "crear servicios Mac OS X desde cualquier script . "

    
respondido por el Peter 01.09.2013 - 18:44
2

No recomendaría crear servicios de Automator para asignar accesos directos a scripts. Hay un error en 10.7 y 10.8 donde los atajos de teclado para los servicios de Automator no siempre funcionan hasta que se desplaza sobre el menú de servicios desde la barra de menú. También hay un retraso relativamente largo (quizás de 0,1 a 1 s) antes de que se ejecuten los servicios.

Consulte esta respuesta para otras formas de asignar atajos de teclado a los scripts. Yo uso FastScripts y Alfred mismo.

    
respondido por el user495470 02.09.2013 - 11:14
1

Puedes EJECUTAR el script existente con un servicio de automatización simple como este. Y asigne su acceso directo desde dentro de los atajos de teclado como de costumbre. Solo recuerde que es posible que sea necesario volver a iniciar algunas aplicaciones antes de que seleccionen los accesos directos.

ejemplo.

script sayHello:

say "hello"

Servicio de automatización:

Queenesteejemplousa:

  • Sinentrada
  • Cualquieraplicación.

LaacciónesEjecutarscriptdeshellElcódigosoloutilizaelcomandodeUnixosascriptylarutaalarchivo.Pasarentradapuedeserastdnoaargumento

Esonoesalgoespecialquedebahacersealscript.

Paraobtenermásdetallessobreel comando de osascript, mire el hombre páginas para ello. La página del manual da otro ejemplo donde puede pasar argumentos al script.

    
respondido por el markhunte 02.09.2013 - 12:46
0

Para desarrollar un servicio, necesita algún tipo de software que cree un servicio como uno de los siguientes:

  1. Automator para crear un .workflow
  2. Este servicio para crear un .servicio
  3. Xcode para crear un .app

Todos los tipos de servicios anteriores son paquetes. Todas son carpetas que contienen una lista que especifica los atributos de un Servicio.

Aquí es cómo creé un Servicio usando Automator que usa una acción de Automator "Ejecutar AppleScript" para llamar a un .script existente.

    
respondido por el Kaydell 02.09.2013 - 17:39

Lea otras preguntas en las etiquetas