2012-08-08 21 views
6

Próbowałem zadzwonić prosty messagebox z konsoli przy użyciu:AppleScript zwraca „Nie interakcji użytkownika dozwolone”

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

ale zwraca:

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

Czy istnieje obejście tego problemu?

EDIT:

Rozwiązaniem jest: tell application "AppleScript Runner" to display dialog "Hello"

Odpowiedz

-6

Zobacz ten answer, zawiera przykład, który działa z konsoli.

8

Można wyświetlić proces w tle, taki jak SystemUIServer, aby wyświetlić okno dialogowe. Wcześniej skupione okno nie przywraca ostrości po domyślnym zamknięciu okna dialogowego. Zdarzenia systemowe i program AppleScript Runner mogą mieć niewielkie opóźnienia, jeśli wcześniej nie były uruchomione.

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 

Można również wskazać aplikacji znajdującej się na wierzchu, aby wyświetlić okno dialogowe, ale często jest ono nieco wolniejsze. Okno dialogowe nie zostanie wyświetlone natychmiast, jeśli aplikacja nie odpowiada. Jeśli MPlayer OS X znajduje się na wierzchu, okna dialogowe tekstowe nie akceptują żadnego wejścia klawiatury.

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 
Powiązane problemy