8 votes

Existe-t-il un moyen d'afficher la sortie AppleScript dans la barre de menus ?

Avant de poursuivre la lecture : Je connais majordome et autres programmes similaires. Je cherche un moyen INTÉGRÉ de faire cela sans avoir recours à une application tierce.

Quoi qu'il en soit, j'ai écrit un AppleScript qui exécute une commande shell. Je veux afficher cette sortie dans la barre de menus en haut... sans Butler comment puis-je faire cela ?

2voto

Nader Shirazie Points 8494

En règle générale, sans un programme tiers, tel que Growl, il n'y a pas de moyen intégré de le faire.

Cependant, vous pouvez écrire un script ou un autre programme tel que celui que j'ai trouvé ici qui fournit le service de menulet pour vous. Je suis sûr que l'intégration de Growl serait beaucoup plus facile à réaliser.

1voto

daviesgeek Points 35275

Il n'y a pas de moyen intégré pour faire cela dans OS X. Cependant, en utilisant Grognement vous pouvez recevoir des notifications. Voici un exemple de script pour cela :

--Make sure Growl is running
tell application "System Events"
    set isRunning to (count of (every process whose bundle identifier is "com.Growl.GrowlHelperApp")) > 0
end tell

if isRunning then
    tell application id "com.Growl.GrowlHelperApp"
        set the allNotificationsList to ¬
            {"Test Notification", "Another Test Notification"}
        --Notifications can be enabled in System Preferences>Growl>Applications>Display Options
        set the enabledNotificationsList to ¬
            {"Test Notification"}
        register as application ¬
            "Growl AppleScript Sample" all notifications allNotificationsList ¬
            default notifications enabledNotificationsList ¬
                    -- Set the icon. You can use any icon from any application
            icon of application "AppleScript Editor"

        notify with name ¬
            "Test Notification" title ¬
            "Test Notification" description ¬
            "This is a test AppleScript notification." application name "Growl AppleScript Sample"

        notify with name ¬
            "Another Test Notification" title ¬
            "Another Test Notification :) " description ¬
            "Alas — you won't see me until you enable me..." application name "Growl AppleScript Sample"

    end tell
end if

Ceci devrait s'afficher :

Et si l'autre notification est également activée :

Des techniques plus avancées sont décrites ici.

1voto

zonble Points 2925

Depuis AppleScriptObjC fait partie de MacOS, il est possible d'utiliser son cadre "Foundation" (y compris les méthodes de NSMenu) pour réaliser ce qui n'était probablement pas possible en 2012.

J'ai trouvé un script intéressant pour créer des menus personnalisés à partir d'AppleScript ; j'en ai extrait le code approprié pour placer du texte dans la barre de menu de MacOS . En fait, il utilise simplement le "titre" d'un menu pour insérer du contenu.

Pour le démontrer, j'ai implémenté un dialogue très basique script qui demande aux utilisateurs de saisir un texte (6 secondes d'attente) qui est ensuite affiché temporairement dans la barre de menu (5 secondes).
Le voici :

use framework "Foundation"
use framework "AppKit"
use scripting additions
property StatusItem : missing value
property newMenu : class "NSMenu"

display dialog "Write something:" default answer "" giving up after 6
set myText to text returned of the result
if myText is "" then set myText to "TOOOOO slow … try again !"
set myText to ">>    " & myText & "    <<"

set bar to current application's NSStatusBar's systemStatusBar
set StatusItem to bar's statusItemWithLength:-1.0
StatusItem's setTitle:myText
set newMenu to current application's NSMenu's alloc()'s initWithTitle:"Custom"
StatusItem's setMenu:newMenu

delay 5
current application's NSStatusBar's systemStatusBar()'s ¬
        removeStatusItem:StatusItem  

Ce code AppleScript peut être utilisé dans n'importe quel script de votre choix. (La partie "dialogue" est facultative )

utilisateur3439894 a aidé à fermer mon "menu", voir la dernière ligne du script. Merci beaucoup !

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X