AppleScript快速行动服务快捷方式问题-MacOS Catalina

问题描述

运行于:MacOS Catalina 10.15.5

我在Automator中进行了快速操作,效果很好。实际上,我已经使用了几年了。动作中的代码本身不是问题,也不是系统首选项中的可访问性/控件。我的问题是至少可以说令人难以置信,而且我似乎无法弄清楚并以为我会问蜂巢的头脑。

使用AppleScript快速操作并确保“工作流收到:在任何应用程序中都没有输入”后,像往常一样进行操作,然后进入并在“系统偏好设置”->“键盘”中为快捷方式分配键“ F13” ->快捷方式->服务,一切似乎都很棒。

在应用程序中,我使用此快捷方式,如果我将鼠标悬停在应用程序主下拉菜单上,并将鼠标悬停在“服务”上,则该项目在那里,并且具有与之关联的快捷方式“ F13”。如果我从下拉菜单中选择快捷方式,则它可以正常运行。

这是问题所在,如果我在键盘上按“ F13”,则该服务连续运行3次。就像系统服务认为我要运行该特定项目3x一样。我也尝试了许多不同的快捷键(简单到:F13,复杂到⌘⌥⌃⇧N),并且快捷键也没有产生任何积极的结果。

我到处检查过,似乎找不到发生这种情况的原因。任何见解/帮助将不胜感激。这不是AppleScripting问题。由于某种原因,OS导致在服务菜单项上进行三重选择。似乎也不是重复键的问题。

谢谢!

解决方法

尽我所知,问题不是工作流运行了三次,而是出现了一系列三个安全错误消息。似乎当您尝试使用键盘快捷键运行服务时,系统会调用xpc服务(位于automator应用程序包内的com.automator.runner.xpc),并且该服务正在触发安全警报,因为它没有没有GUI脚本所需的可访问性权限。没有明显的方法可以授予xpc适当的权限(而且我怀疑无论如何这将是一个巨大的安全漏洞),所以这是行不通的。

但是,有一种解决方法。取得运行中的脚本,将其复制到新的脚本编辑器窗口中,然后使用保存窗口左下方的“文件格式”下拉菜单将其保存为应用程序:

enter image description here

授予此应用程序权限以使用辅助功能:

  • 系统偏好设置→安全和隐私→隐私→可访问性

现在在自动化器中创建一个服务,该服务使用Launch Application操作启动您刚创建的脚本应用程序。将键盘快捷方式分配给该服务,然后一切就可以正常工作了。

当然,这会启动一个应用程序,将其显示在Dock中并暂时抓住前景,这可能会引起视觉上的干扰。如果希望它在后台静默运行,请执行以下操作:

  1. 右键单击脚本应用程序的图标,然后选择Show Package Contents

  2. 向下钻取两个级别以找到info.plist文件,然后在TextEdit,BBEdit或其他一些纯文本编辑器中将其打开

  3. 将以下键/值对添加到文件中(小心不要破坏其他键/值组):

    <key>LSUIElement</key>
    <true/>
    
  4. 保存info.plist文件,然后再次运行该应用程序;应该不露面。