Applescript帮助。项目赢得';t端

Applescript帮助。项目赢得';t端,applescript,Applescript,因此,我是applescript新手,我正在尝试创建一个应用程序,该应用程序将打开microsoft word,然后每隔一段时间自动保存文档,然后在关闭word后停止运行。这是我目前的代码: activate application "Microsoft Word" if application "Microsoft Word" is running then repeat delay 5 tell

因此,我是applescript新手,我正在尝试创建一个应用程序,该应用程序将打开microsoft word,然后每隔一段时间自动保存文档,然后在关闭word后停止运行。这是我目前的代码:

activate application "Microsoft Word"

     if application "Microsoft Word" is running then

          repeat

               delay 5

               tell application "Microsoft Word" to save front document

         end repeat

     end if
直到我退出word为止。即使我将它设置为“结束”,如果word未运行,它仍会尝试保存到word,然后我会收到一条错误消息。另一件有趣的事情是,当我退出word时,它甚至在脚本中说end tell


我做错了什么?

将此保存为保持打开的应用程序:

activate application "Microsoft Word"

    on idle
        say "idle"
        if application "Microsoft Word" is running then tell application "Microsoft Word" to save front document
        return 5 -- in seconds
    end idle

您正在进入一个无限循环-您检查word是否正在运行,然后开始循环并告诉word保存。你再也不会检查word是否还在运行,所以本质上你只是在喊“嘿,word!Save!”,从来没有注意到word收拾好东西回家了。是的,我知道,只是想在编码方面搞点混乱。我是工程系的一年级新生,所以我正在努力适应编码逻辑的工作原理。好的,我不确定。嘿,在本例中,您还应该查看包含的代码片段:ctrl键单击脚本以获得菜单。哦,好的,谢谢。另外,切换if和repeat循环并没有解决这个问题。啊,是的,还删除了第一行,因为这会激活Word。所以脚本实际上是以“repeat”开头,然后是if语句等等。工作得很好!非常感谢。idle和return命令是什么意思?等等,实际上我知道如果我点击它,它不会再从AppleScript语言指南中每隔5秒保存一次:“如果“保持打开”脚本应用程序包含空闲处理程序,则默认情况下,AppleScript会每隔30秒向脚本应用程序发送周期性空闲命令,以便在不执行其他操作时执行后台任务。return语句以秒为单位指定调用下一个idle的时间。您应该启动应用程序一次并将其保留。