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」を参照してください。

 

 

Return To TechNotes-INDEX