2012-08-08 14 views
6

Traté de llamar a un cuadro de mensaje sencillo desde la consola con:AppleScript devuelve "No se permitió la interacción del usuario"

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

pero vuelve:

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

¿Hay alguna solución?

EDIT:

La solución es: tell application "AppleScript Runner" to display dialog "Hello"

Respuesta

-6

ver este answer, que contiene un ejemplo que funciona desde la consola.

8

Puede indicar un proceso en segundo plano como SystemUIServer para mostrar el cuadro de diálogo. La ventana enfocada previamente no vuelve a enfocarse después de que el diálogo está cerrado por defecto. System Events y AppleScript Runner pueden tener pequeñas demoras si no se ejecutaban antes.

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 

También podría indicarle a la aplicación más adelantada que muestre un cuadro de diálogo, pero a menudo es un poco más lenta. El cuadro de diálogo no se muestra inmediatamente si la aplicación no responde. Si MPlayer OS X está en primer plano, los cuadros de diálogo de texto no aceptan ninguna entrada de teclado.

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