我无法找到如何将所选文本用作AppleScript和Automator的变量。
有什么想法吗?
答案 0 :(得分:3)
要了解它是如何工作的,请尝试这个非常简单的Automator服务:
在Automator中创建服务,然后选择文字和每个应用作为输入。
第一个工作流程步骤是执行Applescript 。
Applescript的input
参数包含所选文字。
将Applescript设置为
on run {input, parameters}
display dialog (input as text)
return input
end run
保存后,只要选择了文本,就可以在上下文菜单中使用此操作。
也许命名不同,我不知道英文描述。但我希望这对你来说是一个很好的起点。
玩得开心,迈克尔/汉堡
答案 1 :(得分:2)
对于Applescript,它可以与其他应用程序一起使用。要在应用程序中获取前窗的选定文本,Applescript必须使用此应用程序理解/响应的语言/语法。对于非常易编写脚本的基于文本文档的应用程序,有很多相似之处,如下所示:
tell app "xyz" to get selection of document 1
然而,确实没有标准。许多应用程序在其可编写脚本的字典中没有“文本选择”对象,因此您必须执行各种解决方法。请参阅以下示例:
tell application "Safari" to set selectedText to (do JavaScript "(''+getSelection())" in document 1)
tell application "System Events" to tell application process "TextEdit" to tell attribute "AXSelectedText" of text area 1 of scroll area 1 of window 1 to set selectedText to its value
tell application "Microsoft Word" to set selectedText to content of text object of selection
您还可以编写“系统事件”脚本来模拟command-c的击键以复制文本。
tell application "System Events" to keystroke "c" using {command down}
delay 1
set selectedText to the clipboard
如果您需要更具体的帮助,请发布您的代码并指明您正在使用的应用。如果它不是可编写脚本的应用程序,那么您将不得不使用最后一个方法,调用系统事件。或者,您可以使用OS X服务,您也会询问。
在Automator中创建服务时,您将创建Service类型的新工作流。然后,只需确保在窗口顶部显示:
“服务收到选定的text
”。
然后,您可以使用Automator操作与传递给后续操作的选定文本进行交互。
不幸的是,并非所有程序都与服务兼容。