启动后 n 分钟启动应用程序

启动后 n 分钟启动应用程序

有没有办法让应用程序在启动后 n 分钟启动?我想启动几个应用程序,但不能在启动时启动(使用登录项),因为这会减慢启动时间(例如 Dropbox)。理想情况下,我可以在启动后 10 分钟左右启动。谢谢!

答案1

虽然不是直接的,但你可以通过启动一个等待十分钟然后启动应用程序的脚本来做同样的事情。例如,使用 AppleScript:

delay 600 --600 seconds == ten minutes

tell application "Dropbox" to activate
tell application "Something Else" to activate

打开 AppleScript 编辑器/Applications/Utilities并输入此内容。然后,将其保存为应用程序,并将该应用程序添加到您的登录项中。

这将在您登录而不是在启动后,但您的问题表明您在启动时会自动登录。真正在启动时启动 Mac GUI 应用程序往往行不通。

[编辑]根据 Daniel Beck 的建议,这里有一种默默完成此操作的方法:

创建上面描述的 AppleScript,但将其保存为脚本。然后创建 Launchd 属性列表。如果您安装了 Mac OS X 开发工具,则可以使用随附的属性列表编辑器,也可以使用文本编辑器(因为它是 XML)。创建以下内容:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>some.meaningful.name</string>

    <key>OnDemand</key>
    <false/>

    <key>ProgramArguments</key>
    <array>
        <string>osascript</string>
        <string>/path/to/your/applescript.scpt</string>
    </array>

    <key>KeepAlive</key>
    <false/>
</dict>
</plist>

将其保存在 中~/Library/LaunchDaemons/some.meaningful.name.plist。然后,当您登录时,您的 AppleScript 将会运行,尽管它不会在 Dock 上提供图标,以便您取消。

答案2

不幸的是,Scott 的答案不适用于较新版本的 OS X。下面的版本在 Yosemite 上对我有用。

首先,从登录项中删除该应用(系统偏好设置 -> 用户和组)。但即使你这样做了,某些应用(例如 Dropbox)也会再次将自身添加到登录项中。因此,你还必须在应用中禁用自动启动。

然后,正如 Scott 所写,创建一个如下的 AppleScript 脚本:

delay 600 --600 seconds == 10 minutes

tell application "Dropbox" to activate
tell application "Something Else" to activate

现在你必须创建一个启动代理——只是一个带有扩展名的文件plist——在~/Library/LaunchAgents/。名称可以是例如com.yourname.delayed.start。(不要忘记附加.plist

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>name</string>

    <key>ProgramArguments</key>
    <array>
        <string>osascript</string>
        <string>/path/to/your/applescript.scpt</string>
    </array>

    <key>RunAtLoad</key>
    <true/>
</dict>
</plist>

name( 的值Label应该与文件名相同(但没有扩展名 - .plist

就这样,下次您登录时,您在脚本中指定的应用程序应在 10 分钟后启动。

答案3

有一款名为 Soluto 的应用程序(除其他功能外)可以让你延迟某个项目的启动。 https://www.soluto.com/

它还将向您显示完整的启动项列表,并针对每个启动项提出建议: 在此处输入图片描述

我只在我的电脑上尝试过这个但它们确实支持 Mac。

相关内容