Ms word 在Word 2016中使用AppleScript打开文件

Ms word 在Word 2016中使用AppleScript打开文件,ms-word,applescript,Ms Word,Applescript,以下Applescript代码使用Word 2008工作(即打开文档,前提是文档存在) 如果应用程序尚未运行,则它与Word 2016不兼容 tell application "Microsoft Word" open file "Macintosh HD:Users:username:Stuff.docx" end tell Word 2016打开一个对话框,指出该文件不存在,然后在以下目录中创建并打开一个文件: /Users/username/Library/Containers/

以下Applescript代码使用Word 2008工作(即打开文档,前提是文档存在)

如果应用程序尚未运行,则它与Word 2016不兼容

tell application "Microsoft Word"
    open file "Macintosh HD:Users:username:Stuff.docx"
end tell
Word 2016打开一个对话框,指出该文件不存在,然后在以下目录中创建并打开一个文件:

/Users/username/Library/Containers/com.microsoft.Word/Data
该文件的名称在查找器中显示如下:

Macintosh HD/Users/username/Stuff.docx
在航站楼中,如下所示:

~$cintosh HD:Users:edimark:Rien.docx

只需添加
启动
激活
。不过,我无法解释为什么需要这样做

tell application "Microsoft Word"
   launch
   open file "Macintosh HD:Users:username:Stuff.docx"
end tell

激活
会将应用程序带到最前面
launch
不会启动。

Word过去只使用一个tell,而不被激活,这是Word的问题,而不是AppleScript的问题


如前所述,使用启动或激活是AppleScript向应用程序正确发送消息的一项要求。

一般来说,AppleScript要使用应用程序,它必须正在运行。显然,“激活”可以确保应用程序在您尝试使用之前运行。为什么
不告诉
就足够了?此外,无论我是否使用
activate
,Word都会启动——如果我不使用,它只会把事情搞砸。@JMichaelTX——请参阅我对@brandelone答案的评论。提供一种明确启动应用程序的方法是受欢迎的,但对于一种被认为是高级用户友好语言的应用程序来说,在需要启动的地方强制启动是不受欢迎的。有消息来源吗?Safari、iTunes、Automator、Instruments、Grab、Terminal、InDesign CS6、InCopy CS6也可以通过简单的告诉和打开脚本启动,无需
启动
激活
。(使用macOS 10.12测试)AppleScript语言指南,第页。261“针对本地应用程序的tell语句如果尚未运行,则不会导致其启动。例如,脚本可以检查目标应用程序(第100页)对象的running属性,以确定应用程序是否正在运行,然后再尝试向其发送任何命令。如果未运行,则不会启动。”也在这里:下一段:“如果
tell
语句以本地应用程序为目标,并执行任何需要应用程序响应的语句,则如果应用程序尚未运行,则AppleScript将启动该应用程序。该应用程序将以隐藏状态启动,但脚本可以发送
activate
命令将其带到前端(如果需要)。”糟糕!我一直使用activate来确保在定位应用程序时不会出错(以及一个try块).在脚本调试器中启动时,您是否尝试过查看错误?嗯,我尽可能少地使用AppleScript,而且我对调试器不熟悉…随着问题的解决,我不想做进一步的研究。