如何为我编写的AppleScript分配键盘快捷键?


43

如何为AppleScript分配键盘快捷键?我发现了一个脚本,可以自动返回到Office 2011中的收件箱。


1
正如该答案所指出的那样,通过服务分配的键盘快捷方式并不总是一致的。
威廉

Answers:


48

没有付费的第三方应用程序,这也是可能的!
1.打开自动器。
2.进行新的快速操作。
3.确保它在所有程序中都收到“无输入”。
4.选择运行Apple脚本,然后输入您的代码。
5.保存!

现在转到系统偏好设置>键盘>快捷方式。从边栏中选择服务,然后找到您的服务。双击添加快捷方式(none)

最后,进入系统偏好设置>安全性>隐私>可访问性,并添加Automator和首选应用程序以运行快捷方式。


2
最后的“最后”很重要–错过它,您会得到一个令人困惑的“操作遇到错误”对话框,只是为您提供Show Workflow,可能不会使您变得更明智。
ecmanaut

找出问题的最后一步,在我的操作系统上是不同的mizage.com/help/accessibility.html#10.7
William

5
您首选的应用程式是什么意思?
威廉

如果有一种方法可以自动化“现在go to System Preferences > Keyboard > Shortcuts. Select Services from the sidebar and find your service. Add a shortcut by double clicking (none).” 的步骤,那就太好了,它必须是可能的,但是不知道如何...
Sancarn

3
@William就像您在Finder中编写了AppleScript一样,只需在“辅助功能”设置中选择“自动器”和“查找器”即可。
MegaCookie

15

总之,您将需要使用:

  • Automator创建运行Apple脚本的服务
  • 系统偏好设置以将键盘快捷方式分配给服务

以下是每个步骤涉及的步骤。

1.使用Automator创建服务

  1. 启动Automator(通常在“应用程序”文件夹中找到)
  2. 转到文件>新建
  3. 选择服务,然后单击选择
  4. 在出现的窗口的右上角,确保从“ 服务接收”下拉列表中选择“无输入”
  5. 确保下拉列表中显示“任何应用程序”
  6. 在包含长列表的第二列中,找到“运行AppleScript”并双击它
  7. 这将在右侧添加“运行AppleScript”窗口
  8. 现在,您想要的脚本替换(*您的脚本在这里*)
  9. 使用有意义的名称(例如GoToInbox)保存服务。

现在进入下一步。

2.创建快捷方式

  1. 转到系统偏好设置>键盘>快捷方式
  2. 从边栏中选择服务
  3. 查找您的服务(它将在右侧的列表中)
  4. 通过双击服务名称来添加快捷方式
  5. 现在转到系统偏好设置>安全和隐私>隐私
  6. 在边栏中选择辅助功能
  7. 单击+号(如果锁已锁定,则可能需要解锁)
  8. 添加自动器。
  9. 添加查找器(要找到此查找器,您将需要导航到/System/Library/CoreServices/Finder.app)。
  10. 退出系统偏好设置。

现在您应该能够做两件事:

1.通过转到任何“应用程序”菜单中的“服务”列表(例如Finder> Services,Safari> Services,TextEdit> Services等),从任何应用程序运行该服务,然后选择刚刚创建的服务。

2.使用键盘快捷键运行服务。

注意:我知道,对于某些用户,即使已将快捷键分配给了某项服务,它们似乎也不起作用。这是另一个主题,但是如果您遇到这种情况,则至少可以从正在使用的任何应用程序中运行服务。

让我知道你怎么去。


1
为什么我必须手动添加finder,并且通常无法在哪些应用程序上运行?似乎有时我必须在服务下运行脚本才能进行注册,然后才能注册键盘快捷键,这是一个遗憾。
威廉

2
是的,我通常可以(但不总是)通过在识别键盘快捷键之前先运行服务(有时仅访问“服务”菜单就足够了)来纠正我在“ 注释”中提到的问题。这是一个非常烦人的错误,已经存在长时间了,我当然建议您将错误报告发送给Apple。至于为什么必须手动添加Finder的原因,仅仅是因为默认情况下未添加。最后,我不明白您所说的什么应用程序通常不起作用
Monomeeth

忽略了有关该应用程序在某些应用程序中无法运行的问题。一旦在“服务”菜单下纠正了此问题,似乎正在运行脚本,并且您的解释说明了我遇到的问题。为什么我必须在“辅助功能”列表下添加Automator Finder,它在运行命令时似乎没有什么不同(这是我的基本问题)?
威廉

好问题!如果您不需要上面创建快捷方式的第5步到第9步,那就太好了。但是,我已经帮助很多人创建了用于运行自定义脚本的键盘快捷键,并且发现包括这些步骤通常可以避免出现错误消息(不记得现在是什么或在什么情况下会出现)。也许我默认情况下不应该包括这些步骤,但这就是我已经从事多年的工作了(尽管确切的步骤将根据您的macOS版本而有所不同-上面我根据您的要求包括了El Capitan的步骤)赏金)。
Monomeeth

分配快捷方式应该完全不需要步骤5至9,尽管如果使用UI自动化功能(模拟的鼠标单击和按键),触发脚本可以平稳运行,则可能需要它们。但是,最后一种情况完全是另一个问题。您不应通过在答案中包含以下步骤来混淆两个问题。
kopischke

9

您不能直接为AppleScripts分配键盘快捷键。但是,您可以:

  1. 使用支持设置全局热键和执行AppleScripts(AlfredKeyboard MaestroFastScripts-视您需要而定)的启动器,或者
  2. 将脚本放入Automator服务中“运行AppleScript”操作中。请注意,它必须是服务,而不是应用程序或普通的工作流程:可以在“系统偏好设置”键盘设置中为服务分配热键。

只需按照@MegaCookie的答案中的步骤进行即可
kopischke

您拥有什么操作系统版本,我的10.6.5 Mac似乎没有“选择运行Apple脚本并键入代码”选项?
威廉

1
并非“选择运行AppleScript”,而是(如我的回答所述)您需要添加到Automator服务中的“运行AppleScript”操作。只需将其从库中拖到操作区域中,这将为您提供一个带有功能支架的文本字段,您可以在其中添加代码。另外,我怀疑是否需要@MegaCookie答案中的辅助功能设置-这些与UI自动化有关。
kopischke

3

注意:在macOS Mojave中,在Automator中将其从“服务”重命名为“快速操作”。

  1. cmd+ space并输入“ automator”
  2. 选择:文件>新建
  3. 选择“快速操作”
  4. 在左侧部分的顶部搜索“ applescript”或“ shellscript”或“ javascript”
  5. 将所需操作拖到右侧工作流程
  6. 文件>用所需名称保存

要将击键添加到您的工作流程中:

  1. 打开系统偏好设置
  2. 选择键盘>快捷方式
  3. 选择左侧的服务
  4. 查找新创建的服务,然后双击“无”以添加键盘快捷键

注意:如果不将其设置为快速操作(例如,将其设置为“工作流程”),则“快捷方式”列表将不会检测到它。
Sridhar Sarnobat

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.