またまた学生クエストから、MaxからAppleScriptを実行するにはどうしたらいいんでしょう?という質問(記事ネタが増えて嬉しい)。tap.applescriptオブジェクトってのが手っ取り早いですが、それが含まれるTap.Toolsは有料なので、できればフリーで実現したいところ。
解決策:aka.shellオブジェクトでosascriptコマンド
aka.shellはShellスクリプト(Unixコマンド)を呼び出すMaxオブジェクトで、osascriptはAppleScript(またはOSAスクリプト)を呼び出すUnixコマンドです。オーバヘッドがどのくらいなのかは試していませんが、超高速な呼び出しが必要でなければ実用になるハズ。
osascript [-l language] [-e command] [-s flags] [programfile] [argument …]
詳しくは、ターミナルでmanしてください。
ちなみに、aka.shellと同等の機能を持つshellオブジェクトもあります。aka.applescriptがあってもいいんですが、自分が必要とするまでは作らないです(笑)。
それから、AppleScriptからShellスクリプトを呼び出すには、do shell scriptというAppleScriptコマンドでOK。となると、MaxからShellスクリプトを呼び出して、その中からAppleScriptを実行して、その中から別のShellスクリプトを立ち上げて…と訳の分からないこともできます。もちろん、無限ループに陥ることもできるハズです。
ピンバック: キーストロークを発生させる « akalogue