Sim, o Automator é a melhor opção aqui. Para criar o serviço, siga estas etapas:
Abra o Automator e selecione Serviço:
Pesquise 'applescript' e arraste a ação para o painel direito:
Mude Service receives selected text
para Service receives no input
para que ele sempre apareça no menu Serviços:
Substitua (* Your script goes here *)
por:
do shell script "/usr/bin/osascript /path/to/your/script.scpt"
se você deseja executar seu .scpt
arquivo existente . Observe que o osascript não pode lidar com a interação do usuário, como exibir uma janela de diálogo:
Para superar essa limitação, use esta solução alternativa ou simplesmente substitua (* Your script goes here *)
pelo conteúdo do seu script.
Salve isso:
Se desejar, você pode atribuir um atalho ao seu novo serviço. Selecione Serviços> Preferências de Serviços no Finder (ou qualquer aplicativo aberto):
Atribua um atalho não tão comum:
Agora seu serviço está acessível a partir de qualquer aplicativo através do atalho que você atribuiu na etapa anterior:
Se você quiser se livrar do serviço aberto ~/Library/Services
, exclua o serviço e esvazie a lixeira:
osascript
, conforme explicado em outras respostas.osascript
no Automator para executar seu.scpt
arquivo, uma limitação e duas soluções alternativas.osascript
precisa de 4 segundos adicionais para executar seu script, mas o Automator não é a causa do atraso, que era minha preocupação. Você pode querer depurarosascript
, consulte opensourcehacker.com/2011/12/02/… e stackoverflow.com/questions/31045575/…No script, adicione um
on run
argumento:Em seguida, você pode usar a ação "Executar script de shell" do Automator, com o
osascript
comando:osascript
é um comando que executa o AppleScript no shell. Você precisa das linhas no script para permitir que o script seja executado fora do editor AppleScript.fonte
on run {input, arguments}
formulário especial , mas mesmo no Automator você pode apenas remover o manipulador de execução.Talvez você queira dar uma olhada neste serviço , que permite "criar serviços do Mac OS X a partir de qualquer script".
fonte
Eu não recomendaria a criação de serviços do Automator para atribuir atalhos aos scripts. Há um erro nas versões 10.7 e 10.8, em que os atalhos de teclado dos serviços do Automator nem sempre funcionam até você passar o mouse sobre o menu de serviços na barra de menus. Também há um atraso relativamente longo (talvez de 0,1 a 1 s) antes da execução dos serviços.
Veja esta resposta para outras maneiras de atribuir atalhos de teclado a scripts. Eu uso FastScripts e Alfred.
fonte
Você pode EXECUTAR o script existente com um simples serviço de automação como este. E atribua seu atalho de dentro dos atalhos do teclado normalmente. Lembre-se de que alguns aplicativos podem precisar ser reiniciados antes de escolherem os atalhos.
exemplo.
Olá, script:
Serviço de automação:
Que neste exemplo usa:
A ação é um script de shell de execução O código usa apenas o comando unix osascript e o caminho para o arquivo. A entrada de passagem pode ser para stdn ou argumento
É isso que nada de especial precisa ser feito no script.
Para obter mais detalhes sobre o comando osascript, consulte as páginas de manual . A página de manual fornece outro exemplo em que você pode passar argumentos para o script.
fonte
Para desenvolver um Serviço, você precisa de algum tipo de software que crie um Serviço, como um dos seguintes:
Todos os tipos de serviços acima são pacotes. São todas as pastas que contêm uma lista que especifica os atributos de um Serviço.
Aqui está como eu criei um Serviço usando o Automator que usa uma ação do Automator "Run AppleScript" para chamar um .script existente.
fonte