C'è un modo per mostrare l'output AppleScript nella barra dei menu?

8

Prima di leggere ulteriormente: Conosco il maggiordomo e programmi simili. Sto cercando un modo BUILT-IN per farlo senza un'app di terze parti.

Ad ogni modo, ho scritto un AppleScript che esegue un comando shell. Voglio visualizzare quell'output nella barra dei menu in alto ... senza Butler come posso fare questo?

    
posta FALL3N 28.02.2012 - 21:45
fonte

3 risposte

2

In generale, senza un programma di terze parti, come Growl, non esiste un modo per farlo.

Tuttavia, potresti scrivere uno script o un altro programma come quello che ho trovato qui che fornisce il servizio menulet per te. Sono sicuro che l'integrazione con Growl sarebbe molto più facile da realizzare.

    
risposta data 20.03.2012 - 22:39
fonte
1

Non esiste un modo integrato per farlo in OS X. Tuttavia, usando Growl , puoi avere notifiche. Ecco uno script di esempio per questo:

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

Questo dovrebbe mostrare questo:

Esehaiabilitatoanchel'altranotifica:

Altretecnicheavanzatesonodescritte qui.

    
risposta data 25.04.2012 - 07:21
fonte
1

Poiché AppleScriptObjC fa parte di macOS è possibile utilizzare la sua struttura "Foundation" (compresi i metodi di NSMenu) per ottenere ciò che probabilmente non era possibile nel 2012.

Ho trovato uno script interessante per creare menu personalizzati da AppleScript; da questo ho estratto il codice adatto per posizionare il testo nella barra dei menu di macOS . Infatti utilizza solo il "titolo" di un menu per l'inserimento di alcuni contenuti.

Per dimostrarlo ho implementato uno script di dialogo molto semplice che richiede agli utenti l'immissione di testo (in attesa di 6 secondi) che viene quindi visualizzato temporaneamente nella barra dei menu (5 sec.).
Qui è:

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  

Questo codice AppleScript può essere utilizzato in qualsiasi tuo script. (La sua parte "dialog" è facoltativa ...)

user3439894 ha aiutato a chiudere il mio "menu", vedere l'ultima riga dello script. Grazie mille!

    
risposta data 14.12.2018 - 16:38
fonte

Leggi altre domande sui tag