Como fazer um arquivo AppleScript existente para funcionar como um serviço? -- keyboard campo com applescript campo com automator camp apple Relacionado O problema

How to make an existing AppleScript file to work as a service?


11
vote

problema

português

Eu fiz um AppleScript, salvo como um arquivo em uma pasta específica no meu disco rígido. Agora eu quero atribuir um atalho a ele e parece que eu tenho que fazer um serviço via automator, mas o Run AppleScript me pede para colocar o código dentro, enquanto eu quero executar o arquivo .cpt já existente . Como fazer isso?

english

I made an AppleScript, saved it as a file in a specific folder on my hard drive. Now I want to assign a shortcut to it and looks like I have to make a Service via Automator, but the Run AppleScript asks me to put the code inside, while I want to execute the already existing .scpt file. How to do that?

        

Lista de respostas

10
 
vote

Sim, Automator é a melhor opção aqui. Para criar o serviço, siga estas etapas:

    .
  1. Air Automator e selecione Serviço:

    Digite a descrição da imagem aqui

  2. pesquisa 'AppleScript' e arraste a ação para o painel direito:

    Digite a descrição da imagem aqui

  3. alterar Service receives selected text para Service receives no input para que ele apareça sempre no menu Serviços:

    Digite a descrição da imagem aqui

  4. Substitua (* Your script goes here *) com:

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

    Se você deseja executar seu arquivo ABCDEFGHJKLMNABCDEFGHIJKLMN4 . Observe que osascript não pode lidar com a interação do usuário como exibir uma janela de diálogo:

    Digite a descrição da imagem aqui

    Para superar essa limitação, seja use esta solução ou simplesmente substituir (* Your script goes here *) com o conteúdo do seu script.

  5. Salve:

    Digite a descrição da imagem aqui

  6. Se desejar, você pode atribuir um atalho ao seu novo serviço. Selecione Serviços & GT; Preferências de Serviços no Finder (ou qualquer aplicativo aberto):

    Digite a descrição da imagem aqui

  7. Atribua um shorcut não tão comum:

    Digite a descrição da imagem aqui

  8. Agora seu serviço é acessível a partir de qualquer aplicativo através do atalho que você atribuiu na etapa anterior:

    Digite a descrição da imagem aqui

Se você quiser se livrar do serviço aberto ~/Library/Services , exclua o serviço e esvazie a lixeira:

Digite a descrição da imagem aqui

 

Yes, Automator is the best option here. To create the service follow these steps:

  1. Open Automator and select Service:

    enter image description here

  2. Search 'applescript' and drag the action to the right pane:

    enter image description here

  3. Change Service receives selected text to Service receives no input so that it always appears in the Services menu:

    enter image description here

  4. Replace (* Your script goes here *) with:

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

    if you wish to execute your existing .scpt file. Note that osascript can't handle user interaction like displaying a dialog window:

    enter image description here

    To overcome this limitation either use this workaround or simply replace (* Your script goes here *) with the contents of your script.

  5. Save it:

    enter image description here

  6. If you wish, you can assign a shortcut to your new service. Select Services>Services Preferences in Finder (or any open application):

    enter image description here

  7. Assign a not so common shorcut:

    enter image description here

  8. Now your service is accessible from any application through the shortcut you assigned in the previous step:

    enter image description here

If you ever want to get rid of the service open ~/Library/Services, delete the service and empty the trash:

enter image description here

 
 
         
         
4
 
vote

No script, adicione um on run argumento:

  on run     -- do whatever the script does end run    

Então você pode usar a ação "Run Shell Script" do automator, com o comando abcdefghgjklmnabcdefghijklmn9 :

  Service receives no input0   

Service receives no input1 é 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.

 

In the script, add an on run argument:

on run     -- do whatever the script does end run 

Then you can use the Automator "Run Shell Script" action, with the osascript command:

osascript /path/to/script.scpt 

osascript is a command which executes AppleScript in the shell. You need the lines in the script to allow the script to be executed outside AppleScript editor.

 
 
   
   
3
 
vote
.

talvez você queira dar uma olhada em Este serviço , que permite "criar o Mac OS X serviços de qualquer roteiro. "

 

Perhaps you'd want to take a look at This Service, which allows you to "create Mac OS X services from any script."

 
 
 
 
2
 
vote

Eu não recomendaria a criação de serviços automáticos para atribuir atalhos a scripts. Há um bug em 10.7 e 10.8 onde os atalhos de teclado para serviços automáticos nem sempre funcionam até que você paira sobre o menu de serviços da barra de menus. Há também um atraso relativamente longo (talvez 0,1 a 1 s) antes que os serviços sejam executados.

ver Esta resposta Para outras maneiras de atribuir atalhos de teclado a scripts. Eu uso fastscripts e eu alfriço.

 

I wouldn't recommend creating Automator services to assign shortcuts to scripts. There is a bug in in 10.7 and 10.8 where the keyboard shortcuts for Automator services don't always work until you hover over the services menu from the menu bar. There is also a relatively long (maybe 0.1 to 1 s) delay before services are run.

See this answer for other ways to assign keyboard shortcuts to scripts. I use FastScripts and Alfred myself.

 
 
   
   
2
 
vote

Você pode executar o script existente com um serviço simples automático como este. E atribua seu atalho de dentro dos cortes curtos do teclado como normal. Basta lembrar que alguns aplicativos podem precisar ser relançados antes de escolher os atalhos.

Exemplo.

Sayhello script:

  say "hello"    

Serviço Automator: Digite a descrição da imagem aqui

Que neste exemplo usa:

  • nenhuma entrada
  • qualquer aplicativo.

A ação é um script shell de execução O código usa apenas o comando Unix osascript e o caminho para o arquivo. entrada de passe pode ser para stdn ou para argumentar

Isso não é nada especial precisa ser feito para o script.

Para mais detalhes sobre o comando osascript olhar para as páginas do homem para isso. A página do homem dá outro exemplo onde você pode passar argumentos para o script.

 

You can RUN the existing script with a simple automator service like this. And assign your shortcut from within the keyboard short cuts as normal. Just remember some applications may need to be relaunched before they pick the shortcuts up.

example.

sayHello script:

say "hello" 

Automator service: enter image description here

Which in this example uses:

  • No input
  • Any application.

The Action is a Run Shell Script The code just uses the unix command osascript and the path to the file. Pass input can be to stdn or to argument

Thats it nothing special needs to be done to the script.

For further details on the osascript command look at the man pages for it. The man page give another example where you can pass arguments to the script.

 
 
0
 
vote

Desenvolver um serviço, você precisa de algum tipo de software que criará um serviço como um dos seguintes procedimentos:

    .
  1. Automator para criar um .workflow
  2. thisservice para criar um .service
  3. Xcode para criar um .app
Todos os tipos acima de serviços são pacotes. Eles são todos pastadores que contêm um plist que especifica os atributos de um serviço.

Aqui está como eu criei um serviço usando o Automator que usa uma ação automática "Executar AppleScript" para chamar um .script existente.

Serviço Automator que chama um AppleScript

 

To develop a Service, you need some sort of software which will create a Service such as one of the following:

  1. Automator to create a .workflow
  2. ThisService to create a .service
  3. Xcode to create an .app

All of the above kinds of services are packages. They are all folders which contain an plist that specifies the attributes of a Service.

Here is how I created a Service using Automator that uses a "Run AppleScript" Automator action to call an existing .script.

Automator Service That Calls an Existing AppleScript

 
 

Perguntas relacionadas

0  Como pesquisar PDFs e extrair páginas correspondentes com automator?  ( How to search pdfs and extract matching pages with automator ) 
Eu estou tentando fazer um fluxo de trabalho automático que vai me dar: . Especifique uma pasta para executar as ações em Pesquisar todos os arquivos PDF ...

3  Usando Automator ou AppleScript para criptografar / descriptografar com OpenSSL  ( Using automator or applescript to encrypt decrypt with openssl ) 
Eu gostaria de saber como usar o Automator ou o AppleScript para criar uma gota que comprima / descompactar (tar.gz) e criptografar / descriptografar com arqu...

1  Como executar o script do shell no lançamento do aplicativo?  ( How to run shell script upon application launch ) 
Não tenho certeza se isso pertence aqui ou no superusuário, mas é o Mac específico, então eu vou com aqui. Eu escrevi um script Ruby que edita o arquivo de ...

0  Convertendo Ação Automático no AppleScript para Bash Script  ( Converting automator action in applescript to bash script ) 
Acabei de escrever um aplicativo automático usando o AppleScript (junto com algumas linhas de bash) para iniciar o FTP com um único clique. No entanto, corre ...

4  Remover serviços de menus de contexto (mas deixá-los no menu de serviços do aplicativo)  ( Remove services from context menus but leave them in the apps services menu ) 
Eu criei alguns serviços com automator e parece que o OS X adiciona automaticamente isso ao menu de contexto de arquivos / pastas que eles se aplicam. É possí...

3  Possível automatizar a entrada de classificações de estrelas e play contagens para música idêntica / duplicada no iTunes?  ( Possible to automate entering star ratings and play counts for identical duplica ) 
Estou no processo de substituição de minha baixa qualidade e lt; 192 kpbs mp3s em arquivos MP3 ou ALAC de 320 KPBS no iTunes. Agora, minha rotina é importar...

6  MacOS Catalina causando "Encontrar :.: Operação não permitido" erros  ( Macos catalina causing find operation not permitted errors ) 
Eu tenho um fluxo de trabalho de automação que uso como uma ação rápida. É preciso um item localizador e chama um script de shell com ele. Parte do script de ...

2  Automator Combine PDF Aplicativo  ( Automator combine pdf application ) 
Eu criei quase uma aplicação automática exata como aqueles que postaram antes de mim e vai da seguinte forma; 1) Obter itens do Finder selecionado 2) Comb...

1  Em um serviço, como obter um URL de rico texto?  ( In a service how to get a url from rich text ) 
Estou interessado em fazer um serviço (usando automator, se possível) que me permita executar uma ação em um URL. Se o URL existir como texto simples, isso ...

1  Digitando automaticamente uma senha no terminal  ( Automatically typing a password into terminal ) 
Eu quero ser capaz de alterar a senha de uma imagem de disco, mas totalmente automatizada. Existe uma maneira de inserir uma string como uma senha em vez de t...




© 2022 pergunte.org All Rights Reserved. Casa de perguntas e respostas todos os direitos reservados


Licensed under cc by-sa 3.0 with attribution required.