06月 « 2018年07月 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31  » 08月

スポンサーサイト

--., --th -- --:-- 

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
AppleScript(wikipedia)

Mon., 26th 2013 23:21 

entry_img_28.png
AppleScriptはOSAに準拠したスクリプト言語の一つであり、アプリケーション等のプロセスにAppleEventを送ることにより自動操作を実現する。そういった意味ではマクロ言語と同等。しかし実際にはプログラミング言語の一種であり、通常はコンパイル済みのバイトコードが保存され実行される。このため、基本的にはOSのバージョン(Classic Mac OSかMac OS Xか)やCPUの形式(68k、PPC、Intel)、記述した言語(AppleScript英語、AppleScriptフランス語、AppleScript日本語)などに依存しないコードが生成される。
AppleScriptはMac OS上のアプリケーション間通信を基礎技術として用いているため、アプリケーションがAppleEventに対応していればそのアプリケーションに処理を委ね、その処理結果を別のアプリケーションに対して用いることも可能である。また、現在のバージョンではSystem Eventsと呼ばれる機能を用いて、スクリプトからアプリケーションにメニュー操作やキー入力を伝達することさえも可能になっている。アプリケーションは、システム経由で送られてきたAppleEventメッセージを解釈して対応した処理を行い、処理結果を再びシステムを経由してAppleEventメッセージとして返す。そのため、処理速度は遅い。
ユーザインタフェース[編集]
AppleScript言語そのものはユーザインタフェースを持たず、アプリケーションやスクリプティング機能追加(OSAX)と呼ばれる追加モジュールの機能を利用してユーザーとの対話を行う。標準的なOSAXは簡素なダイアログ程度のユーザインタフェースしか持たない。
多様な自作のインタフェースを持たせるにはDialogDirectorというOSAXや、AppleScript Studio、HyperCard、FaceSpan、REALbasicなどを用いる必要がある。AppleScript Studio、HyperCard、およびFaceSpanはプログラミング言語としてAppleScriptを採用しており、コントロール(GUIの部品)が操作されると、AppleScriptコードの中から適切なイベントハンドラが呼び出され、その範囲内に記述されたAppleScriptを実行する。一方のREALbasicは、REALbasic本来のプログラミング言語を拡張するための言語という位置づけで、機能毎にスクリプトが記述されたファイルを用意し、REALbasicのコードからそのファイルを呼び出して実行する。また、Automatorのワークフロー記述の一部としてAppleScriptを使用することもできる。
開発環境[編集]
Mac OS Xにはスクリプトの編集・実行ツールであるAppleScriptエディタ(Mac OS X v10.5まではスクリプトエディタ、Mac OSでは『スクリプト編集プログラム』)が付属する。
Mac OS X 10.1.2から搭載されたAppleScript Studioにより、アップル純正の統合開発環境Xcode(旧Project Builder)でAppleScriptを開発言語として使えるようになり、Interface Builderを用いてユーザーインターフェースの設計が行えるようになった。またMac OS Xでは、テキストで書いたスクリプトをコマンドラインからコンパイル・実行することも可能になった。
構文[編集]
HyperCard用のスクリプト言語であるHyperTalkに似た、英語に近い構文が採用されており、基本的には習得しやすい。しかしアプリケーションごとに全く異なる命令が採用されていることが多く、別のアプリケーションを使うときはその都度作法を覚えなくてはならない。初期は日本語表現形式を含む英語以外の言語による記述も可能だったが、Mac OS 8.5以降は英語表現形式のみが採用されている。ただし、英語表現形式の場合も変数名は | で囲むことで日本語などを使用できる。
スクリプトの例(変数「持ち物=myItem」の中身が0だったらダイアログを表示する)

コメントの投稿

非公開コメント

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。