6

次を使用して、コンソールから簡単なメッセージボックスを呼び出そうとしました。

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

しかし、それは戻ります:

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

回避策はありますか?

編集:

回避策は次のとおりです。tell application "AppleScript Runner" to display dialog "Hello"

4

2 に答える 2

9

SystemUIServerなどのバックグラウンドプロセスにダイアログを表示するように指示できます。デフォルトでは、ダイアログを閉じた後、以前にフォーカスされていたウィンドウはフォーカスを取り戻しません。システムイベントとAppleScriptRunnerは、以前に実行されていなかった場合、わずかな遅延が発生する可能性があります。

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

最前面のアプリケーションにダイアログを表示するように指示することもできますが、多くの場合、少し遅くなります。アプリケーションが応答しない場合、ダイアログはすぐには表示されません。MPlayer OS Xが最前面にある場合、テキストダイアログはキーボード入力を受け入れません。

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
于 2012-08-08T23:45:53.877 に答える
-4

解決策については、この質問を参照してください。コンソールから機能する例が含まれています。

「ユーザーの操作は許可されていません」PythonでAppleScriptを実行している場合

于 2012-08-08T18:57:12.923 に答える