-1

运行于:MacOS Catalina 10.15.5

我在 Automator 中做了一个快速操作,效果很好。事实上,我已经使用它几年了。操作本身的代码不是问题,也不允许系统偏好中的可访问性/控件。至少可以说,我的问题令人难以置信,我似乎无法弄清楚并认为我会问蜂巢思维。

在使用 AppleScript 进行快速操作并确保“工作流程收到:在任何应用程序中没有输入”之后,我通常会这样做,然后进入并在系统偏好设置中分配快捷键“F13”-> 键盘-> 快捷键--> 服务,一切看起来都很棒。

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

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

我到处检查过,似乎找不到发生这种情况的原因。任何见解/帮助将不胜感激。这不是 AppleScripting 问题。由于某种原因,操作系统导致服务菜单项出现三重选择。它似乎也不是 Key Repeater 问题。

提前致谢!

4

1 回答 1

0

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

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

在此处输入图像描述

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

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

现在在 automator 中创建一个服务,该服务使用该Launch Application操作来启动您刚刚创建的脚本应用程序。将您的键盘快捷键分配给该服务,一切都应该按照您的喜好进行。

当然,这会启动一个应用程序,在 Dock 中显示它并暂时抓住前景,这可能会在视觉上分散注意力。如果您希望它在后台静默运行,请执行以下操作:

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

  2. 向下钻取两层以找到info.plist文件,并在 TextEdit、BBEdit 或其他纯文本编辑器中打开它

  3. 将以下键/值对添加到文件中(注意不要分解其他键/值组):

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

于 2020-10-03T00:15:59.887 回答