Iniciando um aplicativo n minutos após o boot

5

Existe uma maneira de fazer um lançamento do aplicativo n minutos após a inicialização? Existem alguns aplicativos que eu quero lançar, mas não no horário de início (usando itens de login), porque ele diminui o tempo de inicialização (por exemplo, o Dropbox). Idealmente, posso fazer isso 10 minutos após o lançamento. Obrigado!

    
por ceiling cat 02.06.2011 / 08:09

3 respostas

5

Não diretamente, mas você pode fazer a mesma coisa iniciando um script que aguarda dez minutos e depois iniciar o aplicativo. Por exemplo, com um AppleScript:

delay 600 --600 seconds == ten minutes

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

Abra o AppleScript Editor em /Applications/Utilities e digite-o. Em seguida, salve-o como um aplicativo e adicione esse aplicativo aos seus itens de login.

Isso iniciará o (s) aplicativo (s) dez minutos depois de você efetuar login em vez de depois de iniciar, mas sua pergunta sugere que você esteja fazendo login automaticamente na inicialização. Iniciar aplicativos Mac GUI genuinamente na inicialização tende a não funcionar.

[edit] Por sugestão de Daniel Beck, aqui está uma maneira de fazer isso silenciosamente:

Crie o AppleScript descrito acima, mas salve-o como um script. Em seguida, crie uma lista de propriedades do Launchd. Se você instalou as ferramentas de desenvolvimento do Mac OS X, poderá usar o Editor de lista de propriedades incluído com elas ou usar um editor de texto (como é XML). Crie o seguinte:

<?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>

Salve isso em ~/Library/LaunchDaemons/some.meaningful.name.plist . Então, quando você fizer o login, seu AppleScript será executado, embora não forneça um ícone no dock, o que permitiria cancelar.

    
por 02.06.2011 / 11:31
2

A resposta de Scott infelizmente não funciona nas versões mais recentes do OS X. A versão abaixo funcionou para mim no Yosemite.

Primeiramente, remova o aplicativo dos Itens de login (Preferências do sistema - > Usuários e grupos). Mas mesmo se você fizer isso, alguns aplicativos (por exemplo, o Dropbox), serão adicionados novamente aos itens de login. Então você também tem que desativar o início automático em seu aplicativo.

Então, como Scott escreveu, crie um script AppleScript como este:

delay 600 --600 seconds == 10 minutes

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

Agora você precisa criar um agente de inicialização - apenas um arquivo com a extensão plist - em ~/Library/LaunchAgents/ . O nome poderia ser, por exemplo, com.yourname.delayed.start . (Não esqueça de acrescentar o .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 (o valor de Label ) deve ser o mesmo que filename (mas sem a extensão - .plist )

E isso é tudo, da próxima vez que você fizer login, os aplicativos que você especificou no seu script deverão ser lançados após 10 minutos.

    
por 16.07.2015 / 15:12
0

Existe um aplicativo chamado Soluto que (entre outras coisas) permitirá que você atrase a inicialização de um item. link

Ele também mostrará uma lista abrangente de itens de inicialização e fará recomendações para cada um:

Eu só tentei isso em meus PCs, mas eles têm suporte para Mac.

    
por 16.07.2015 / 15:19

Tags