Só pode executar o AppleScript do Automator -- acos campo com applescript campo com automator campo com services campo com accessibility camp apple Relacionado O problema

Can only run AppleScript from Automator


8
vote

problema

português

Eu tenho o seguinte AppleScript que alterna a direção de rolagem no trackpad:

  tell application "System Preferences"     activate     set current pane to pane "com.apple.preference.trackpad" end tell  tell application "System Events"     tell process "System Preferences"         click radio button "Scroll & Zoom" of tab group 1 of window "Trackpad"         click checkbox 1 of tab group 1 of window "Trackpad"     end tell end tell  tell application "System Preferences"     quit end tell    

Esse script é executado sem problemas quando o botão "Play" no automator é usado para executá-lo. No entanto, quando eu faço um serviço que o executa e atribui um atalho de teclado ao serviço, ele não é executado através do atalho de teclado.

Envolvendo-o em um bloco ABCDEFGHIJKLMNABCDEFGHIJKLMN3 com algum relatório de erro produz o seguinte:

.

A Automator Runner não é permitido acesso assistivo.

erro do erro - 1728

Digite a descrição da imagem aqui

Eu encontrei o Automator Runner.App e dei acesso assistive usando as instruções encontradas Aqui .

Aparece agora com uma caixa despachada na lista de aplicativos com acesso assistivo:

Digite a descrição da imagem aqui

No entanto, a questão persiste. Eu continuo a obter a mesma mensagem me notificando que Automator Runner is not allowed assistive access. ao tentar executar o script usando o comando teclado do serviço que executa o script.


atualização

Eu apenas consegui implementar este script alternativo para realizar a mesma coisa, mas também funciona apenas quando o Automator tem foco e tem o mesmo problema quando não é:

  tell application "System Preferences"     reveal anchor "trackpadTab" of pane "com.apple.preference.trackpad" end tell tell application "System Events" to tell process "System Preferences"     click checkbox 1 of tab group 1 of window 1 end tell quit application "System Preferences"    
english

I have the following AppleScript which toggles the scroll direction on the trackpad:

tell application "System Preferences"     activate     set current pane to pane "com.apple.preference.trackpad" end tell  tell application "System Events"     tell process "System Preferences"         click radio button "Scroll & Zoom" of tab group 1 of window "Trackpad"         click checkbox 1 of tab group 1 of window "Trackpad"     end tell end tell  tell application "System Preferences"     quit end tell 

This script runs without issues when the "play" button in Automator is used to execute it. However, when I make a service that runs it and assigned a keyboard shortcut to the service, it fails to run via the keyboard shortcut.

Wrapping it in a try block with some error reporting yields the following:

Automator Runner is not allowed assistive access.

Error number-1728

enter image description here

I found Automator Runner.app and gave it assistive access using the instructions found here.

It now appears with a checked box in the list of applications with assistive access:

enter image description here

However, the issue persists. I continue to get the same message notifying me that Automator Runner is not allowed assistive access. when trying to run the script using the keyboard command of the service that runs the script.


Update

I just succeeded at implementing this alternative script to accomplish the same thing, but it also only works when Automator has focus and has the same issue when it does not:

tell application "System Preferences"     reveal anchor "trackpadTab" of pane "com.apple.preference.trackpad" end tell tell application "System Events" to tell process "System Preferences"     click checkbox 1 of tab group 1 of window 1 end tell quit application "System Preferences" 
              
         
         

Lista de respostas

4
 
vote
.

Nota importante sobre as ações do Applifript em fluxos de trabalho automático.
Espero que isso ajude os outros que estão procurando por uma correção.

Acesso assistivo

Se o seu script usar coisas como tell application "System Events" para obter dados da interface do usuário do aplicativo Windows ou enviar pressionamentos de tecla virtuais, etc., então ele precisará "Acesso assistivo".

Isso pode ser chamado coisas diferentes em diferentes versões do Mac OS, mas geralmente podem ser encontradas em Preferências do Sistema e GT; Segurança e amp; Privacidade e GT; Privacidade e GT; Acessibilidade , sob "Permitir que os aplicativos abaixo controlem o seu computador" .

Ativando o Acesso Automático para o Automator Editor de Script Os aplicativos permitirão que seus fluxos de trabalho e scripts funcionem dessas ferramentas, mas não quando salvas como aplicativos independentes. Em teoria, permitindo acesso para qualquer aplicativo também deve deixar falar com os eventos do sistema.

Problema com o AppleScripts Executar de Ações Automáticas

mas Como muitos descobriram , A Automator geralmente tem problemas criando aplicativos que podem ser concedidos acesso assistive, quando esses aplicativos contêm código AppleScript. Sem mencionar o fato de que os serviços não podem ser concedidos a tais permissões em todos os , já que eles não são aplicativos.

Solução alternativa

No entanto, você pode construir aplicativos independentes do AppleScript do Editor de script e conceder-lhes acesso assistive sem problema.

Você pode executar esses aplicativos como parte de um automático ou fluxo de trabalho do shell, assim:

Ação AppleScript no Automator

  do shell script "osascript -e 'tell application "My Granted App Name" to activate'"    

script shell
(Também pode ser de uma ação automática)

  osascript -e 'tell application "My Granted App Name" to activate'    

Isso também funciona para criar serviços no Automator. Basta ter seu serviço Executar o aplicativo concedido por permissão, em vez de tentar adicionar código de necessidade de permissão ao próprio serviço.

Observe que o ABCDEFGHIJKLMNABCDEFGHIJKLMN3 Chamada não requer a extensão ".app" ou até mesmo um caminho. Se você tiver muitos aplicativos com o mesmo nome, deve haver uma maneira de obter o aplicativo pelo seu identificador de pacote, etc.

Outros IDES

Não tenho certeza se este é um problema específico para o Automator, já que não tentei chamar os aplicativos extravagantes de aplicativos construídos com ferramentas diferentes daquele e editor de scripts. De qualquer forma, o acima deve funcionar para outras ides / compiladores / etc. também.

re-construindo seu aplicativo

Na maioria dos casos, editar e re-construir um aplicativo concedido requer que seja novamente concedido acesso. Portanto, ajuda a testar tudo bem no Automator / Script Editor antes de criar o aplicativo independente, para economizar o problema. Se o seu script for chamado por um projeto maior, você recompila rotineiramente, é melhor ativar esse script em seu próprio aplicativo para conceder acesso a ele uma vez, e execute o aplicativo do seu projeto maior. Pelo menos até que o projeto maior seja finalizado.

Para aplicativos usados ​​por vários scripts, você pode mantê-los em um local consistente como uma pasta personalizada / Aplicativos / ferramentas / scripts . No entanto, lembre-se de que qualquer código de terceiros pode iniciar aplicativos e, assim, ativar seus scripts potencialmente sensíveis. É importante considerar implicações de segurança ao criar código que usando o Access Assistive.

Quando a concessão não funciona

Há momentos em que a concessão de um aplicativo reconstruído não "leva". Em tais casos, renomeando o aplicativo e a adicionando através de preferências do sistema geralmente resolve isso. Você deve ser capaz de reencadear o aplicativo de volta ao seu original mais tarde. Este é um erro com como o acesso assistencial armazena em cache sua lista de aplicativos, e o nome do arquivo e / ou caminho estão envolvidos de alguma forma. Se alguém sabe como limpar este cache, adicione um comentário; Seria muito útil.

 

Important note regarding AppleScript actions in Automator workflows.
Hopefully this helps others who are looking for a fix.

Assistive Access

If your script uses things like tell application "System Events" to get UI data from app windows or send virtual keystrokes, etc, then it'll require "assistive access".

This may be called different things in different versions of Mac OS, but can generally be found in System Preferences > Security & Privacy > Privacy > Accessibility, under "Allow the apps below to control your computer".

Enabling assistive access for the Automator and Script Editor applications will allow your workflows and scripts to run from those tools, but not when saved as standalone apps. In theory, enabling access for any app should also let it talk to System Events.

Problem with AppleScripts run from Automator Actions

But as many have discovered, Automator often has issues creating apps that can be granted assistive access, when such apps contain AppleScript code. Not to mention the fact that services cannot be granted such permissions at all, since they aren't apps.

Workaround

However, you can build standalone AppleScript apps from the Script Editor application instead, and grant them assistive access without issue.

You can then run such apps as part of an Automator or shell workflow, like this:

AppleScript action in Automator

do shell script "osascript -e 'tell application \"My Granted App Name\" to activate'" 

Shell Script
(can also be from an Automator action)

osascript -e 'tell application "My Granted App Name" to activate' 

This also works for creating services in Automator. Just have your service run the permission-granted app, rather than trying to add permission-requiring code to the service itself.

Note that the tell app call doesn't require the ".app" extension, or even a path. If you have many apps with the same name, there should be a way to get the app by its bundle identifier, etc.

Other IDEs

I'm not sure if this is a problem specific to Automator, since I haven't tried calling fancy AppleScripts from apps built with tools other than that and Script Editor. Either way, the above should work for other IDEs/compilers/etc. as well.

Re-Building your App

In most cases, editing and re-building a granted app requires it be re-granted access. So it helps to test everything well in Automator/Script Editor before you build the standalone app, to save you the trouble. If your script is called by a larger project you routinely recompile, it's best to turn that script into its own app to grant it access once, and run the app from your larger project. At least until the larger project is finalized.

For apps used by multiple scripts, you could keep them in a consistent spot like a custom /Applications/Tools/Scripts folder. However, remember that any third-party code can launch apps and thus activate your potentially sensitive scripts. It's important to consider security implications when creating code that using assistive access.

When Re-Granting Doesn't Work

There are times when re-granting a rebuilt app doesn't "take". In such cases, renaming the app and re-adding it via System Preferences usually solves this. You should be able to re-name the app back to its original at a later time. This is a bug with how Assistive Access caches its list of apps, and the filename and/or path are involved somehow. If anyone knows how to clear this cache, please add a comment; it would be very helpful.

 
 
1
 
vote

Eu suspeito que você pode não ter um problema que poderia ser "depurado".
Leia este guia do macosxautomation.com sobre como ter applets t permanentemente mantenha sua "permissão" para executar, ser aceita pelo Mac OS X.

truque é instalar um especial Resourcerules - ignorando- Scripts.Plist que você assina e registre seu aplicativo (let). (Mas leia o aviso nesta página da web!)

Razão é, alguns aplicativos salvam informações "para si" e, portanto, não serão idênticos / reconhecidos da próxima vez que correrem.

(mas de qualquer maneira: mesmo que o conselho do guia seja não ajudá-lo , ainda pode ser de interesse para os outros ...)

 

I suspect you may not really have a problem that could be "debugged".
Read this Guide from macosxautomation.com on how to have applets that don't permanently keep their "permission" to run, be accepted by Mac OS X.

Trick is to install a special ResourceRules-ignoring-Scripts.plist that you sign and register your app(let) into. (But read the WARNING on this web page!)

Reason is, some apps save information "into themselves" and therefore won't be identical/ recognized next time they run.

(But anyway: even if the Guide's advice does NOT help you, it still might be of interest to others ...)

 
 
1
 
vote

Eu sei que esta é uma pergunta antiga, mas eu estava enfrentando esta questão agora e eu consegui trabalhar em torno disso, então eu pensei que postaria uma resposta.

Eu li em outro lugar que adicionar Automator Runner.app para o painel de privacidade / acessibilidade das preferências do sistema não impediria o erro, então eu não tentei, mas o que funcionou para mim estava colando o todo o fluxo de trabalho em um novo documento de fluxo de trabalho "aplicativo". Eu salvei que no mesmo local que o serviço e, em seguida, criei um novo fluxo de trabalho "serviço" que fez apenas uma coisa: Execute o novo aplicativo que acabei de criar.

Em seguida, adicionei esse aplicativo ao painel de privacidade / acessibilidade das preferências do sistema. Agora, quando eu executo o serviço, não recebo o erro de permissões.
 

I know this is an old question, but I was facing this issue just now and I managed to work around it, so I thought I would post an answer.

I'd read elsewhere that adding Automator Runner.app to the Privacy/Accessibility pane of System Preferences would not prevent the error, so I didn't try it, but what did work for me was pasting the entire workflow into a new "Application" workflow document. I saved that in the same location as the service and then I created a new "Service" workflow that only did 1 thing: run the new application I had just created.

I then added that application to the Privacy/Accessibility pane of System Preferences. Now, when I run the service, I do not get the permissions error.

 
 
   
   
0
 
vote

Não é uma resposta, mas ...
Para tentar depurar, eu desconstruiria o roteiro aos seus componentes, tão aproximadamente divididos apenas

  tell application "System Preferences" activate set current pane to pane "com.apple.preference.trackpad" end tell    

& amp; Teste por qualquer erro

Então adicione

  tell application "System Events"     tell process "System Preferences"          click radio button "Scroll & Zoom" of tab group 1 of window "Trackpad"     end tell end tell    

Verifique novamente

& amp; para frente até encontrar o ponto de falha

Uma possibilidade seria reverter eventos do SYS e amp; Sys prefs em sua ordem atual de corrida, mas isso é apenas um tiro no escuro.

Espero que alguém com melhores costeletas de aplicativos do que eu fornecerei uma solução melhor.

 

Not an answer, but...
To attempt to debug, I would deconstruct the script to its components, so roughly split to only

tell application "System Preferences" activate set current pane to pane "com.apple.preference.trackpad" end tell 

& test for any error

Then add

tell application "System Events"     tell process "System Preferences"          click radio button "Scroll & Zoom" of tab group 1 of window "Trackpad"     end tell end tell 

check again

& onward until you find the fail point

One possibility would be to reverse sys events & sys prefs in your current running order, but that's just a shot in the dark.

Hopefully, someone with better applescript chops than I will provide a better solution.

 
 
 
 

Perguntas relacionadas

2  Mova globalmente o ponteiro do mouse e clique em usando pressionamentos de tecla VIM?  ( Globally move mouse pointer and click using vim keystrokes ) 
Eu gostaria de poder acertar uma tecla de atalho e entrar em um modo de movimento do mouse onde eu posso mover o ponteiro do mouse ao redor da tela usando tec...

11  Alternar entre o Windows (não aplicativos) em ambas as direções  ( Switch between windows not applications in both directions ) 
Não consigo alternar entre o Windows suavemente. No Windows, eu poderia usar a guia Ctrl + para percorrer todas as janelas abertas e a guia Ctrl + Shift + par...

20  Software para flip horonalmente (não girar) a saída do monitor OSX?  ( Software to horizonally flip not rotate osxs monitor output ) 
Por motivos de exibição, temos uma configuração onde um usuário assiste a vídeos em um MacBook através de um espelho. Claro, isso funciona bem para vídeos nor...

9  Não é possível adicionar aplicativos a preferências de segurança e privacidade em Mojave  ( Cannot add any apps to security privacy preferences on mojave ) 
Recentemente atualizei meu Mac para Mojave. Eu tenho vários aplicativos (por exemplo, Dropbox, backblaze, ficar) que exigem permissões específicas que podem...

2  Não é possível duplicar o trackpad para destacar várias palavras em MacOS Mojave  ( Unable to double tap on the trackpad to highlight multiple words in macos mojave ) 
em versões anteriores do OS X, eu fui capaz de "toque duas vezes" no trackpad e mova meu dedo para o lado ou para baixo para realçar / selecionar texto / múlt...

20  Restaurar a funcionalidade da chave de escape no localizador (Mavericks)  ( Restore functionality of escape key in finder mavericks ) 
Sempre foi possível remover o foco de todos os arquivos selecionados no localizador pressionando a tecla ⎋ escape . Parece que isso não é mais possível no OS...

1  Photo Apps para iPad sobre WiFi  ( Photo apps for ipad over wifi ) 
Eu tenho muitas fotos de família e vídeo em casa armazenados em pastas de rede (meu PC, meu NAS) acessível via Wi-Fi. Existem aplicativos de fotos e editor ...

8  Macos destacam palavras individuais como são faladas, como ios  ( Macos highlight individual words as they are spoken as ios ) 
No iOS, é possível ter o texto lido em voz alta usando o texto-para-fala interno (TTS) enquanto as palavras individuais destacam como são faladas. como nest...

2  Como tornar o rolo do trackpad apenas em uma direção?  ( How to make trackpad scroll only in one direction ) 
Quando tento rolar uma exibição de texto usando o trackpad movendo meus dois concordadores na direção vertical, ele também se move ligeiramente na direção hor...

4  Colocando o dedo duas vezes no scanner de dedo no iPhone 6 Plus Mudanças  ( Placing finger twice on finger scanner on iphone 6 plus changes view ) 
Eu estava brincando com o iPhone 6 mais e descobri que quando você coloca o dedo duas vezes no scanner de dedo ou gire o dedo no scanner, o aplicativo atualme...




© 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.