IconAS Runner Object

AppleScriptでは,テキストで記述されたスクリプトをコンパイルして,言語表現に依存しない中間的なバイトコードに変換します。このバイトコードを「コンパイル済みスクリプト」または「スクリプトオブジェクト」と呼びます。スクリプトは,整数,文字列,日付などと同様なclassであり,アプリケーションはこのスクリプトをディスクからメモリに読み込んで実行します。AS Runner Objectはこのバイトコードであるスクリプトの生成を行うスクリプト共有ライブラリです。また,AS Runnerおよびその関連ソフトがネットワーク上で遠隔制御ツールとして動作する上で必要な機能を提供します。このライブラリの機能を利用することでスクリプト送信スクリプトと同等またはそれ以上の機能を持つスクリプトアプリケーションを開発することもできます。

動作条件

スクリプトアプリケーションからの利用法

スクリプト共有ライブラリはAppleScriptなので,スクリプト共有ライブラリ規格のページで提供されているライブラリである loadObj() Handler を用いた以下のようなスクリプトによりスクリプトアプリケーションのメモリに読み込んで利用します。
property loadObjHandler : load script file "loadObj() Handler"
on loadObj(ObjName)
    loadObj(ObjName) of loadObjHandler
end loadObj

display dialog (checkDialect() of loadObj("ASRunnerObj")) buttons {"OK"} default button 1
loadObj(ObjName) ルーチンはコアライブラリであるCyberHandlerObject (CoreObj)およびそれを実装した実行環境であるAS Runnerにも組み込まれているので,AS Runnerにおいて実行されるスクリプトは loadObj() Handler の組込みを省略できます。

AS Runner Objectのルーチン

AS Runner Objectの持つルーチンを示します。

run()
checkDialect()が呼び出される。AS Runner ObjをAS Runnerで実行したときやエージェントとしてスクリプト送信スクリプトで送信したときに利用される。
checkDialect()
使用中のMacintoshのAppleScript表現形式を調べる。「AppleScript English」,「AppleScript 日本語」,「AppleScript Francais」(AppleScript Fran溝is)のいずれかが返される。それ以外の表現形式に関しては未対応。
compileScript(ScriptString)
AppleScriptを記述したテキストをコンパイルしてスクリプトオブジェクトに変換して返す。AppleScriptがそれ自身をコンパイルすることのできる開発システムであることを実証する機能。スクリプト送信スクリプトは,テキストをスクリプトオブジェクトに変換して送信するためにこの機能を利用している。AS Compilerもこの機能を利用してテキストをスクリプトオブジェクトに変換する。コンパイルされたスクリプトは自動的にスクリプトオブジェクト共有ライブラリ規格対応となっている。
connectASR()
ネットワーク上の他のMacintoshの上で動作するAS Runnerに接続するためのルーチン。AS Runnerがリモートで動作中ではない場合でも起動させて接続することができる。MacOS9以上ではIPアドレスを直接入力して AppleEvent over IPを利用することも可能。接続先のアプリケーションの「参照」が結果として返される。Mac OS Xにおける動作は未確認。
connect_IP(theIP)
connectASRはAppleTalkなどにも対応しているが、connect_IPはダイアログを出さずに指定したIPアドレスのMacのAS Runnerにに対して自動的にログインを試みる。接続先のAS Runnerへの参照が結果として返る。Rendezvousにも対応しているはずだが未確認。
sendScriptObj(targetObj, targetApp)
指定されたアプリケーションに指定されたスクリプトを転送する機能。未コンパイルのテキストもコンパイル済みのスクリプトも転送可能。
loadScript(FilePath)
指定されたファイルをAppleScriptとして読み込んで返す。テキスト,Data Component Objectによってデータフォークに記録されたコンパイル済みAppleScript,通常のスクリプトオブジェクトのいずれの形式であっても読み込むことができる。
solveResult(theResult)
実行されたAppleScriptの「結果」を通常のテキストに変換する機能。


ログの記録について

AS Runner Objectはコンテナアプリケーションに対してログを記録するためのイベントを発行します。これに対応する必要はありませんが,対応させるとログを記録することができます。例えば,AS Runner であれば,テキスト書き出しルーチンWTFを用いて,以下のようなスクリプトでAS Runner Objからのlogイベントをとらえてログを記録しています。

on log msg
    try
        WTF((path to preferences folder as string) & "AppleScript Runner Log", msg, true)
    on error
    end try
end log

変更履歴

ver.2.62
Tiger向けアップデート。
ver.2.61
Panther向けアップデート。
ver.2.6
ネットワークアクセス関係のアップデート。
ver.2.59
ユーザー登録関係の修正と各種サブルーチンのアップデート。
ver.2.58
10.1以前のMac OS X ではリモート接続できないようにした。コンパイル命令の変数の修正。
ver.2.57
内部のルーチンのアップデート。Rendezvous対応。IP アドレスを指定するconnect_IP(theIP)命令の追加。
ver.2.56
内部のルーチンのアップデート。Mac OS Xにおける処理の変更。
ver.2.55
内部のルーチンのアップデート。Mac OS Xにおいてはusing termsを利用したスクリプトに変更し,AppleTalkにも最大限に対応し,マシン名の入力も可能にした。
ver.2.54
内部のルーチンのアップデート。Mac OS Xにおける処理の変更。
ver.2.53
内部のルーチンのアップデート。Mac OS Xにおける処理の変更。
ver.2.52
Mac OS XのFinderが返すデータ形式の変更に関する修正。IPアドレスの指定で接続をする際にAS Runner Script Menuが表示されてしまう問題を修正。Mac OS Xにおいてアプリケーション選択画面が利用できるようになった。
ver.2.51
Mac OS X 10.1および Mac OS 9.2.2対応のための修正。
ver.2.5
Mac OS XにおいてはAppleTalkネットワーク上のマシンを選択するインターフェースが廃止されたので,IP接続のみをサポートするようになりました。
ver.2.4
相手先のMacintosh上でAS Runnerが動作中ではなくても接続できるようになりました。MacOS9におけるIPアドレスの直接入力に対応しました。
ver.2.3
一部の環境では自己参照エラーを回避するようになりました。インターフェースを拡張しました。DataComponentObjが不要になりました。
ver.2.2
動作にCyberHandlerObjが不要になりました。
ver.2.1
「AppleScriptフランス語」もコンパイル可能になりました。
ver.2.0
共有ライブラリとしては初のリリース。

このソフトウエアは開発者向けの資料を含んでいます。単純にライブラリのみをインストールする場合は,ネットワークインストーラを利用することができます。このソフトウエアは共有ライブラリであり,システム全体の動作に影響を与える可能性は低いと考えられますが,このソフトウエアを使用したことによるいかなる結果についても作者は責任を負いません。

関連ページ
   スクリプトオブジェクト共有ライブラリ規格
   エラー番号一覧のページへ
   ライセンス登録に関して
   ネットワークインストーラ
   スクリプト送信スクリプト


Copyright(C) SUZUKI Kazufumi, All rights reserved.