1

osascriptユーザーからの入力を収集するために使用する OSX 10.7 (Lion) macbook pro で小さなシェル スクリプトを実行しています。このスクリプトは、完全に機能する場合もあれば、返される場合もありますexecution error: System Events got an error: No user interaction allowed. (-1713)

Mac を再起動した後、動作するかどうかは安定しています。動作する場合は、再起動するまで動作します。機能しない場合は、再起動するまで機能しません。再起動すると、再起動後に最初にこれを実行することになったとしても、試してみないとうまくいくかどうかはわかりません。

スクリプトの関連部分は、Terminal.app でシミュレートできます (これをすべてコピーして Terminal.app に貼り付けます)。

echo $(/usr/bin/osascript <<-'__HEREDOC__'
tell application "System Events"
  activate
  set input to display dialog "What you type here should be returned:" default answer "" buttons {"Cancel", "OK"} default button 2
  return text returned of input as string
end tell
__HEREDOC__
)

そのコードがダイアログを表示する場合、それはあなたのために働いています。「ユーザーの操作がありません…」というエラーが表示される場合は、機能していません。再起動すると、機能している状態から機能していない状態に切り替わったり、元に戻ったりする場合があります。

Google は「osascript "No userinteraction allowed"」に対して数千の結果を返しますが、私が得ている一貫性のない結果に苦しんでいる他の人を見つけることができません。スクリプトファイルを保存してAppleScriptから実行することを含む回避策を提案する人もいます

on run {sourcefile}
tell application “AppleScript Runner”
  do script sourcefile
end tell
end run

… 非常に醜いように見えるので、私はこれを試していません。これが時々機能しない原因は何ですか? このような問題のトラブルシューティングをどのように行いますか?

4

0 に答える 0