2012-08-08 16 views
6

ho provato a chiamare una semplice MessageBox dalla console utilizzando:ritorna AppleScript "No interazione con l'utente consentito"

osascript -e "display dialog \"hello\"" 

ma restituisce:

execution error: No user interaction allowed. (-1713) 

C'è una soluzione?

EDIT:

La soluzione è: tell application "AppleScript Runner" to display dialog "Hello"

risposta

-6

Vai a questa answer, contiene un esempio che funziona dalla console.

8

È possibile indicare un processo in background come SystemUIServer per visualizzare la finestra di dialogo. La finestra precedentemente focalizzata non riprende l'attenzione dopo che la finestra di dialogo è stata chiusa per impostazione predefinita. Eventi di sistema e AppleScript Runner potrebbero avere piccoli ritardi se prima non erano in esecuzione.

answer=$(osascript -e 'try 
tell application "SystemUIServer" 
set answer to text returned of (display dialog "" default answer "") 
end 
activate app (path to frontmost application as text) 
answer 
end' | tr '\r' '\n') 
[[ -z "$answer" ]] && exit 

Si potrebbe anche dire all'applicazione in primo piano di visualizzare una finestra di dialogo, ma è spesso leggermente più lento. La finestra di dialogo non viene visualizzata immediatamente se l'applicazione non risponde. Se MPlayer OS X è in primo piano, le finestre di dialogo di testo non accettano alcun input da tastiera.

answer=$(osascript -e 'try 
tell application (path to frontmost application as text) 
text returned of display dialog "" default answer "" 
end 
end' | tr '\r' '\n') 
[[ -z "$answer" ]] && exit