AppleScriptとOracle Power Objects
はじめに
この資料は、Oracle Power Objects v1.0で実現されている現行のAppleScriptの機能についての情報を提供します。この機能はOracle Power Objectsの開発サイクル後期において追加されたため、現在の段階ではドキュメントは提供されていません。この資料では、AppleScriptの使用法の基礎に習熟していることを前提に説明します。
AppleScriptとは何でしょう?AppleScriptは、Macintoshオペレーティング・システム用に開発されたスクリプト言語でSystem7.5以降では標準です。AppleScriptを使用して、日常のバックアップのための特定のファイルのコピー、ごみ箱を空にする作業等、オペレーティングシステムの多くの機能を自動化することができます。また、スクリプト機能をもつアプリケーションの「制御」にも使用されます。AppleScriptの使用におけるより詳細な情報は、次の文献を参照してください。
・「Tao of AppleScript」 by Derrick Schneider
・「The Complete AppleScript Handbook」 by Danny Goodman
・「AppleScript Language Guide: English Dialect」 from Apple Computer
AppleScriptコマンドの受信
現在では、Oracle Power Objects v1.0は、スクリプトや外部サポートの面でかなり制限があります。次の2つのAppleScriptコマンドはOracle Power Objectsで使用可能です。
・pay attention: (パラメータなし)
Oracle Power Objectsにおいて、フロント・フォームのOMAMsgRcvd()メソッドをコール、あるいは実行します。たとえば、次のようになります。
tell app "Power Objectsデザイナー"
pay attention
end tell
・exiting: (パラメータなし)
Oracle Power Objectsにおいて、フロント・フォームのOMAShutdown()メソッドをコール、あるいは実行します。たとえば、次のようになります。
tell app "Power Objectsデザイナー"
exiting
end tell
これらのコマンドは、AppleScriptソフトウェアに含まれているScript Editorを使用して書かれたあらゆるスクリプトから、あるいはAppleScriptコマンドを稼働することができるあらゆるアプリケーションから送信可能です。
これらのコマンドはどちらも、Oracle Power Objects に対して情報を渡すことができません(パラメータなし)ので、対応するメソッド(OMAMsgRcvd/OMAShutdown)に対して、情報の受渡しを扱うコードの追加が必要になります。たとえば、Oracle Power Objectsに渡したい情報を格納するディスク上のテンポラリ・ファイルを使用して情報を渡し、OMAMsgRcvd(あるいはOMAShutdown)にコードを追加してファイルから情報を取り出すことができます。
これらのAppleScript のコマンドをCアプリケーションから送信するには、そのアプリケーションがスクリプト・データのコンパイルでき、実行できることが必要です。スクリプト・データのコンパイルと実行に関する詳細は、「Inside Macintosh: Interapplication Communication」を参照してください。
AppleScriptコマンドの送信
組み込み式であるDoScript()を使用して、Oracle Power ObjectsからAppleScriptコマンドを送信することができます。DoScript()エクスターナルを使用するには、アプリケーションのDeclarationsセクションに次のコードを追加してください。
DECLARE FUNCTION DoScript LIB "" (BYVAL vText AS String) AS Long Integer
ロケーション「""」は、DoScript()が、Oracle Power Objects Designer/Runtimeアプリケーションに含まれている外部コード・リソースであることを示します。たとえば、SimeleTextにファイル「Power:file1」を開くように指示するには、次のメソッド・コードを使用します。
DIM theText dq AS String
DIM result AS long
dq = chr(34) ' ダブル・クォートのキャラクタ
' Command: tell app "SimpleText" to open "Power:file1"
theText = "tell app "+dq+"SimpeText"+dq+" to open "+dq+"Power:file1"+dq
result = Doscript(theText) ' 成功するとゼロになります。
DoScriptは現在では、AppleScriptコマンドのコンパイルから実行における結果のエラー・コード(成功すればゼロ)を返すのみです。送信されたAppleScriptからもどされる結果や変数を受け取ることはできません。
現行のAppleScriptの機能は、かなり限られたものです。Oracle Power Objects v2.0では、その幅を広げることが考えられています。
Apple EventsとOracle Power Objects
Oracle Power ObjectsでAppleScriptを稼働させることは可能ですが、個々のApple Eventsを他のアプリケーションに送信する機能は提供されません。Oracle Power ObjectsのアプリケーションからApple Eventsを送信する必要がある場合、現在、唯一可能な方法は、Apple Eventsを送信するコード・リソースを書くことです。そうすればコード・リソースは、必要に応じてOracle Power Objectsにコールされます。
同様に、Oracle Power ObjectsはApple Eventsを受け取る、公開されたインターフェースをもっていません。AppleScriptコマンド「pay attention」「exiting」をOracle Power Objectsに送る方法について、スクリプトのコンパイルと実行に関する詳細は「Inside Macintosh: Interapplication Communication」を参照してください。