Comment afficher périodiquement un message d’alerte * au premier plan * sur Mac OS X?

1

Je souhaite avoir une alerte / une boîte de dialogue se déclencher périodiquement au premier plan sur mon Mac.

J'ai essayé une combinaison de AppleScript et launchd et réussi à avoir le script (réellement converti en une application) déclenché périodiquement via launchd. Cependant, la boîte d’alerte ne s’affiche pas devant toutes les autres fenêtres (elle est totalement masquée jusqu’à ce que Est-ce que se lancer via launchd ). Comment puis-je l'obtenir devant?

Mon script est le suivant:

on run
    activate me --> tried to get alert in foreground
                --> didn't help, though
    display alert "Should show up in foreground..."
end run

Mon launch.plist est (dans /Users/bernhard/Library/LaunchAgents/ ):

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

    <key>Program</key>
    <string>/Users/bernhard/programming/periodic.app/Contents/MacOS/applet</string>

    <key>RunAtLoad</key>  
    <true/>

    <key>StartInterval</key>
    <integer>1200</integer>
</dict>
</plist>
Bernhard Röttgers
la source

Réponses:

0

Vous avez une réponse sur Demandez différent :

La solution est de open l'application, qui ressemble davantage à un double-clic sur l'icône de l'application. Autrement dit, il faut remplacer le programme qui doit être appelé par /usr/bin/open et transmettez l'application sous forme d'argument comme suit dans le fichier launchd.plist:

<key>Program</key>
<string>/usr/bin/open</string>
<key>ProgramArguments</key>
<array>
    <string>open</string>
    <string>/Users/bernhard/programming/periodic.app</string>
</array>

Le premier argument (dans ce cas open ) est effectivement passé comme argv[0] et, par conséquent, n'est pas pertinent ici. Le premier argument réel est alors /Users/[...]/periodic.app - le répertoire de l'application plutôt que le binaire réel.

Bernhard Röttgers
la source