¿Cómo hacer que un file AppleScript existente funcione como un service?

Hice un AppleScript, lo guardé como un file en una carpeta específica en mi disco duro. Ahora quiero asignarle un atajo y parece que tengo que hacer un Servicio a través de Automator, pero el Run AppleScript me pide que coloque el código, mientras que quiero ejecutar el file .scpt ya existente. ¿Como hacer eso?

  • Teclas del keyboard mal asignadas? Cómo corregirlos por software significa
  • ¿Cómo hacer clic derecho usando el keyboard?
  • Cambiar tabs en Safari - Acceso directo (⌘ + ⌥ + Flecha)
  • ¿Cómo cambiar el layout del keyboard a través del atajo de keyboard?
  • Mail.app: ¿atajo para cambiar firmas?
  • ¿Cómo debo solucionar problemas de keyboard en iOS?
  • ¿Cómo ingresar al menu de inicio sin la tecla de command?
  • ¿es posible emparejar / conectar múltiples HID (s) / keyboards inalámbricos en IOS (iPhone / iPad) simultáneamente?
  • 6 Solutions collect form web for “¿Cómo hacer que un file AppleScript existente funcione como un service?”

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

    1. Abra Automator y select Servicio:

      enter image description here

    2. Busque 'applescript' y arrastre la acción al panel derecho:

      enter image description here

    3. El Service receives selected text cambio Service receives selected text para que el Service receives no input para que siempre aparezca en el menu de services:

      enter image description here

    4. Reemplazar (* Your script goes here *) con:

       do shell script "/usr/bin/osascript /path/to/your/script.scpt" 

      si desea ejecutar su file .scpt existente. Tenga en count que osascript no puede manejar la interacción del usuario, como mostrar una window de dialog:

      enter image description here

      Para superar esta limitación, utilice esta solución alternativa o simplemente reemplace (* Your script goes here *) con el contenido de su secuencia de commands.

    5. Guárdalo:

      enter image description here

    6. Si lo desea, puede asignar un acceso directo a su nuevo service. Seleccione Servicios> Preferences de services en Finder (o cualquier aplicación abierta):

      enter image description here

    7. Asignar un shorcut no tan común:

      enter image description here

    8. Ahora puede acceder a su service desde cualquier aplicación a través del acceso directo que asignó en el paso anterior:

      enter image description here

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

    enter image description here

    En el script, agregue un argumento de on run :

     on run -- do whatever the script does end run 

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

     osascript /path/to/script.scpt 

    osascript es un command 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.

    Quizás desee echar un vistazo a este service , que le permite "crear services Mac OS X a partir de cualquier script".

    No recomendaría crear services de Automator para asignar accesos directos a las secuencias de commands. Hay un error en 10.7 y 10.8 donde los atajos de keyboard para los services de Automator no siempre funcionan hasta que pasas el cursor sobre el menu de services desde la barra de menu. También hay un retraso relativamente largo (tal vez de 0,1 a 1 s) antes de ejecutar los services.

    Consulte esta respuesta para conocer otras forms de asignar atajos de keyboard a los scripts. Yo uso FastScripts y Alfnetworking yo mismo.

    Puede ejecutar el script existente con un simple service de automation como este. Y asigne su atajo desde dentro de los atajos de keyboard como de costumbre. Solo recuerde que algunas aplicaciones pueden necesitar ser relanzadas antes de seleccionar los atajos.

    ejemplo.

    sayHello script:

     say "hello" 

    Servicio Automator: enter image description here

    Que en este ejemplo usa:

    • Sin input
    • Cualquier aplicación

    La acción es una secuencia de commands Ejecutar Shell. El código solo usa el command unix osascript y la ruta al file. La input del pase puede ser stdn o argumento

    Eso es nada especial debe hacerse en el guión.

    Para get más detalles sobre el command osascript, consulte las páginas man para él. La página man proporciona otro ejemplo donde puede pasar arguments al script.

    Para desarrollar un Servicio, necesita algún tipo de software que creará un Servicio como uno de los siguientes:

    1. Automator para crear un .workflow
    2. ThisService para crear un .service
    3. Xcode para crear un .app

    Todos los types de services anteriores son packages. Son todas las carpetas que contienen un plist que especifica los attributes de un Servicio.

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

    Servicio de Automator que llama a un AppleScript existente

    Loving Apple Products like poisoning (iPhone, iPad, iMac, Macbook, iWatch).