| パラダイム | 自然言語プログラミング、スクリプト |
|---|---|
| 開発者 | アップル社 |
| 初登場 | 1991年[1] |
| 安定リリース | 2.8 [2]
/ 2014年10月16日[3] |
| タイピングの規律 | 弱い、ダイナミック |
| OS | システム 7、Mac OS 8、Mac OS 9、macOS |
| ライセンス | 独自仕様( APSLで入手可能な部品) |
| ファイル名拡張子 | .scpt、.scptd、.applescript |
| Webサイト | developer.apple.com/library/archive/documentation/AppleScript/Conceptual/AppleScriptLangGuide |
| 影響を受けた | |
| 自然言語、ハイパートーク | |
AppleScriptは、 Apple社が開発したスクリプト言語で、スクリプト可能なMacアプリケーションの自動制御を容易にする。System 7で初めて導入され、現在はシステム自動化ツールのパッケージの一部としてmacOSのすべてのバージョンに含まれます。 [4] [ 5]「AppleScript」という用語は、言語自体、言語で書かれた個々のスクリプト、または非公式には、言語の基礎となるmacOS Open Scripting Architectureを指す場合があります。[4] [5]
概要
AppleScriptは、主にAppleがAppleイベントを使用してアプリケーション間通信(IAC)を行うために開発したスクリプト言語です。[4] [5] AppleScriptはAppleイベントと関連がありますが、異なります。Appleイベントは、反復的なタスクを自動化するために、他のアプリケーション間でデータを交換し、制御するように設計されています。
AppleScript には、アプリケーションへの Apple イベントの送受信に加えて、独自の処理機能があります。AppleScript は基本的な計算とテキスト処理を実行でき、拡張可能で、言語に新しい機能を追加するスクリプト追加機能を使用することができます。ただし、主に AppleScript は、複雑なタスクを処理するためにアプリケーションとプロセスの機能に依存しています。構造化コマンド言語として、AppleScript はUnix シェル、Microsoft Windows Script Host、または IBM REXXと比較できますが、これら 3 つとは区別されます。その機能に不可欠なのは、Macintosh アプリケーションがアドレス指定可能なオブジェクトと操作の「辞書」を公開するという事実です。
AppleScriptは、手続き型プログラミング、オブジェクト指向プログラミング(特にスクリプトオブジェクトの構築)、自然言語プログラミングの傾向の要素を構文に取り入れていますが、これらのプログラミングパラダイムのいずれにも厳密には準拠していません。[5] : xxvi
歴史
1980年代後半、AppleはHyperCardのHyperTalk スクリプト言語を、社内および従来のMac OSオペレーティングシステム内のエンドユーザー開発用標準言語、およびApple製品と非Apple製品間のプロセス間通信用として使用することを検討しました。 [6] HyperTalkは、初心者でもHyperCardスタックをプログラムするために使用できます。Appleのエンジニアは、同様の、しかしよりオブジェクト指向のスクリプト言語を設計すれば、どのアプリケーションでも使用できることを認識し、Macintosh全体を近代化する研究活動のスピンオフとしてAppleScriptプロジェクトが生まれ、最終的にSystem 7の一部になりました。[1]
AppleScriptは、System 7.1.1(System 7 Pro、System 7の最初のメジャーアップグレード)の一部として1993年10月にリリースされました。[1] QuarkXPress(バージョン3.2)は、AppleScriptをサポートした最初の主要なソフトウェアアプリケーションの1つでした。これにより、AppleScriptは出版およびプリプレスの世界で広く採用され、複雑なワークフローを結び付けることが多くなりました。これは、QuarkXpressやその他の出版アプリケーションがMicrosoft Windowsに移植された後も、出版およびプリプレスにおけるMacintoshの支配的な地位を維持するための重要な要因でした。
Appleの次世代OSにおけるAppleScriptの将来については不確実性があったが、Mac OS X(2002年頃)とそのCocoaフレームワークへの移行により、AppleScriptの有用性と柔軟性が大幅に向上した。Cocoaアプリケーションにより、アプリケーション開発者は最小限の労力でアプリケーションに基本的なスクリプト機能を実装できるため、直接スクリプト化できるアプリケーションの数が増えた。同時に、Unix基盤への移行と、do shell scriptコマンドを使用してUnixコマンドを直接実行するAppleScriptの機能により、[7] AppleScriptはオペレーティングシステム自体をより細かく制御できるようになった。[5] :863 Mac OS X 10.2でXcodeの一部としてリリースされたAppleScript Studioと、その後Mac OS X 10.6でリリースされたAppleScriptObjCフレームワークにより、ユーザーはAppleScriptを使用してCocoaアプリケーションを構築できるようになった。[5] :969
2006年の記事では、MacworldはAppleScriptをAppleのこれまでの最も重要な30製品のランキングに含め、17位にランク付けしました。[8]
2013年のMacworldの記事で、ベテランMacソフトウェア開発者で評論家のジョン・グルーバーは「AppleScriptのあり得ないほどの持続性」についての考察を次のように締めくくっています。「理論上は、AppleScriptはもっと良くなる可能性があります。しかし、実際には、AppleScriptは私たちが持っている中で最もうまく機能するものです。これは、いじくり回す人や上級ユーザーにとって、MacがiOSよりも優れていることを例示しています。」[9]
2016年10月、長年AppleScriptのプロダクトマネージャーと自動化の伝道師を務めたサル・ソゴイアンが、その役職が「ビジネス上の理由」で廃止されたためAppleを去った。[10]ジョン・グルーバーやアンディ・イナトコなどMacコミュニティのベテランたちは概して懸念を示し、開発者コミュニティとプロユーザーに対するAppleの取り組みに疑問を呈した。[11] Appleのソフトウェアエンジニアリング担当上級副社長クレイグ・フェデリギは電子メールで「我々はmacOSの優れた自動化技術を今後もサポートするつもりだ」と返信したが、The Mac Observerのジェフ・ガメットは、Appleの自動化全般、特にAppleScriptの将来に対する彼の疑念を和らげることはほとんどできなかったと意見を述べた。[12]当面の間、AppleScriptはAutomator、ショートカット、サービス、シェルスクリプトとともにmacOSの自動化技術の1つのコンポーネントであり続ける。
基本概念
AppleScript は、アクセス可能なエンドユーザー スクリプト言語として使用できるように設計されており、ユーザーにアプリケーションの制御、データやドキュメントへのアクセスと変更を行うインテリジェントなメカニズムを提供します。AppleScript は、Macintosh オペレーティング システムがアプリケーションに情報を送信するために使用する標準化されたデータ形式のセットであるApple イベント を使用します。これは、 Web サービスの世界でXML-RPCを介してXPathクエリを送信することにほぼ似ています。[5] : xxvi Apple イベントを使用すると、スクリプトは複数のアプリケーションを同時に操作し、それらの間でデータを渡すことができるため、人間の介入なしに複雑なタスクを実行できます。[4]たとえば、単純な Web ギャラリーを作成する AppleScript では、次の操作が考えられます。
- 写真編集アプリケーションで写真を開きます (そのアプリケーションにOpen File Apple イベントを送信します)。
- 写真編集アプリケーションに画像を操作するよう指示します(例:解像度を下げる、枠線を追加する、写真のクレジットを追加する)
- 写真編集アプリケーションに、変更した画像を別のフォルダー内のファイルに保存するように指示します (そのアプリケーションにSaveおよび/またはClose Apple イベントを送信します)。
- 新しいファイル パスを (別の Apple イベント経由で) テキスト エディターまたは Web エディター アプリケーションに送信します。
- そのエディター アプリケーションに、写真へのリンクを HTML ファイルに書き込むように指示します。
- 上記の手順を画像のフォルダ全体(数百または数千枚の写真)に対して繰り返します。
- Apple イベントをグラフィカルFTPクライアントに送信するか、組み込みの AppleScript コマンドを使用するか、または Apple イベントを Unix FTP ユーティリティに送信して、修正した写真の HTML ファイルとフォルダーを Web サイトにアップロードします。
ユーザーにとっては、複数のアプリケーションでの数百または数千のステップが、スクリプトを実行するという単一の動作に削減され、タスクははるかに短い時間で完了し、ランダムな人的エラーの可能性はありません。大規模で複雑なスクリプトを 1 回だけ実行するように開発し、他のスクリプトを何度も使用することもできます。
アプリケーションのスクリプト可能な要素は、アプリケーションのスクリプト辞書 (アプリケーションの一部として配布) で確認でき、任意のスクリプト エディターで表示できます。要素は通常、要素間の緩やかな機能関係に従ってスイートにグループ化されます。スイートには、クラスとコマンドという 2 つの基本的な種類の要素があります。
- クラスはスクリプト可能なオブジェクトです。たとえば、テキスト編集アプリケーションには、ほぼ確実にウィンドウ、ドキュメント、テキストのクラスがあります。これらのクラスには、変更可能なプロパティ (ウィンドウのサイズ、ドキュメントの背景色、テキストのフォント サイズなど) があり、他のクラスが含まれている場合があります (ウィンドウには 1 つ以上のドキュメントが含まれ、ドキュメントにはテキストが含まれ、テキスト オブジェクトには段落、単語、文字が含まれます)。
- 対照的に、コマンドはスクリプト可能なオブジェクトに与えることができる命令です。AppleScript ブロックの一般的な形式は、スクリプト可能なオブジェクトにコマンドを実行するように指示することです。
すべてのスクリプト可能なアプリケーションは、通常、標準スイートと呼ばれるいくつかの基本的なコマンドとオブジェクト (ファイルを開く、閉じる、保存する、何かを印刷する、終了する、変数にデータを設定するコマンド) と、アプリケーション自体のスクリプト可能なプロパティを提供する基本的なアプリケーションオブジェクトを共有します。多くのアプリケーションには、アプリケーション自体が実行できるすべてのタスクを実行できる多数のスイートがあります。例外的なケースでは、アプリケーションが独自のスクリプト辞書を含むプラグインをサポートすることがあります。
AppleScript は、ユーザーの操作を記録することで直感的にスクリプトを作成できるように設計されています。このような AppleScript の記録機能はアプリに組み込む必要があります。つまり、アプリは Apple イベントと AppleScript の記録をサポートしている必要があります。[13] Finder は AppleScript の記録をサポートしているため、参照に便利です。AppleScriptエディタ(スクリプトエディタ) を開いて記録ボタンをクリックすると、記録可能なアプリのユーザー操作が同等の AppleScript コマンドに変換され、スクリプトエディタウィンドウに出力されます。生成されたスクリプトを保存して再実行し、元の操作を複製したり、より一般的に役立つように変更したりできます。
コメント
コメントは複数の方法で作成できます。1 行のコメントは 2 つのハイフン ( -- ) で始めることができます。Mac OS X Leopardで最初にリリースされた AppleScript 2.0 では、コメントを番号記号 (#) で始めることもできます。これにより、自己完結型の AppleScript スクリプトを、シェバン行 で始まる実行可能なテキスト ファイルとして保存できます。#!/usr/bin/osascript
例:
--これは 1 行のコメントです
# これもそうです! (Mac OS X Leopard 以降)
複数行にわたるコメントの場合、AppleScript ではアスタリスクが入った括弧を使用します。例:
(* これは
複数
行の
コメントです *)
こんにちは世界!
AppleScript では、従来の「Hello, World!」プログラムは、次のようなさまざまな形式で記述できます。
「Hello, world!」という ダイアログを表示する(「OK」ボタンと「キャンセル」ボタンがあるモーダル ウィンドウ)
。または、
「Hello, world!」というアラートを表示する (「OK」ボタン 1 つとアラートを表示しているアプリを表すアイコンがあるモーダル ウィンドウ)。または、「Hello, world!」と発声する(合成されたコンピューター音声を使用したオーディオ メッセージ)。
⌥ OptionAppleScript には、ダイアログ、アラート、選択肢のリストなど、いくつかのユーザー インターフェイス オプションがあります。(スクリプト エディタで+と入力すると生成される文字 ¬ はreturn、1 つのステートメントが複数行に継続することを示します。)
-- ダイアログ
ダイアログを表示するようにdialogReply を設定します。 "ダイアログ テキスト" ¬デフォルトの回答"テキスト回答" ¬非表示の回答false ¬ボタン{ "スキップ" 、"OK" 、"キャンセル" } ¬デフォルトのボタン"OK" ¬キャンセルボタン"スキップ" ¬タイトル付き"ダイアログ ウィンドウ タイトル" ¬アイコン付き注記¬ 15 秒後に諦める
-- リストから選択する 選択するリスト項目をリスト { "A" , "B" , "3" } から選択します
¬ タイトル は " リストタイトル" です¬ プロンプトは "
プロンプトテキスト" です¬既定の項目は" B"です ¬ OKボタンの名前は"よさそうです!"です ¬キャンセルボタンの名前は"いいえ、もう一度やり直してください"です¬複数選択が許可されますfalse ¬空の選択が許可されます
-- アラート
resultAlertReplyを設定して アラートを表示する"アラートテキスト" ¬警告として¬ボタン{ "スキップ" 、"OK" 、"キャンセル" } ¬デフォルトボタン2 ¬キャンセルボタン1 ¬ 2後に諦める
各ユーザー インタラクション メソッドは、クリックされたボタン、選択された項目、または入力されたテキストの値をさらに処理するために返すことができます。例:
アラート 「Hello, world!」 ボタンを表示 { 「無礼に断る」、 「喜んで受け入れる」}
theAnswerを結果の返されたボタンに設定する theAnswerが「喜んで受け入れる」の場合はビープ音5を鳴らし、そうでない場合は「Piffle!」と言うend if
自然言語のメタファー
Apple イベントはアプリケーションにメッセージを送信する方法ですが、AppleScript は Apple イベントを送信するために設計された特別な言語です。初心者にとって使いやすいという目的に沿って、AppleScript 言語は自然言語 メタファーに基づいて設計されています。これは、グラフィカル ユーザー インターフェイスがデスクトップ メタファーに基づいて設計されているのと同じです。適切に記述された AppleScript は、誰でも読んで理解できるほど明確で、簡単に編集できるものでなければなりません。この言語は主に HyperCard の HyperTalk 言語に基づいており、カードとスタックの HyperCard の世界だけでなく、理論的にはあらゆるドキュメントを参照するように拡張されています。この目的のために、AppleScript チームはAppleEvent オブジェクト モデル(AEOM) を導入しました。これは、特定のアプリケーションが「認識」するオブジェクトを指定します。
AppleScript 言語の核心は、名詞として機能する用語と、組み合わせることができる動詞を使用することです。たとえば、ページ、ドキュメント、またはページの範囲を印刷するための別の動詞 (printPage、printDocument、printRange など) ではなく、AppleScript では、ページ、ドキュメント、またはページの範囲などのオブジェクトと組み合わせることができる単一の「print」動詞を使用します。
1ページ目 を印刷
文書 2を印刷
文書2の1ページ目から5ページ目 を印刷する
一般的に、AEOM は「ドキュメント」や「段落」などの多数のオブジェクトと、「切り取り」や「閉じる」などの対応するアクションを定義します。また、システムはオブジェクトのプロパティを参照する方法も定義しているため、「ドキュメントの 3 番目の段落 'Good Day'」や「フロント ウィンドウの最後の単語の色」を参照できます。AEOM はアプリケーションディクショナリを使用して Apple イベントを人間が読める用語に関連付け、人間が読める AppleScript とバイトコードApple イベント間の翻訳を可能にします。プログラムのどの要素がスクリプト可能かを調べるには、サポートされているアプリケーションのディクショナリを表示できます。( XcodeおよびScript Editorアプリケーションでは、これはFile → Open Dictionaryにあります。)
このようなメッセージのターゲットとなるアプリケーションを指定するために、AppleScript は「tell」構造を使用します。
アプリケーション 「Microsoft Word」
を終了して
終了 する
あるいは、不定詞を使って tell を 1 行で表現することもできます。
アプリケーション 「Microsoft Word」を 終了するように 指示する
「コア スイート」のイベント (アクティブ化、開く、再オープン、閉じる、印刷、終了) の場合、アプリケーションは推移的なコマンドの直接オブジェクトとして指定できます。
アプリケーション 「Microsoft Word」を終了する
オブジェクト階層の概念は、ネストされたブロックを使用して表現できます。
tell application "QuarkXPress"
tell document 1
tell page 2
tell text box 1
set word 5 to "Apple"
end tell
end tell
end tell
end tell
オブジェクト階層の概念は、ネストされた前置詞句または一連の所有格 を使用して表現することもできます。
TIFF画像「my bitmap」の3行目のピクセル7 TIFF画像「my bitmap」の3 行目の7 番目のピクセル
これは、別のプログラミング言語では、次の疑似コードのように、順次メソッド呼び出しとして表現されることがあります。
getTIFF ( "私のビットマップ" ). getRow ( 3 ). getPixel ( 7 );
AppleScript には、序数カウントの構文 (「最初の段落」) と基数カウントの構文 (「段落 1」) が含まれています。同様に、数字自体もテキストまたは数値として参照できます。「5」、「5 番目」、および「5」はすべてサポートされています。これらは AppleScript では同義語です。また、「the」という単語は、読みやすさを向上させるためにスクリプト内の任意の場所で合法的に使用できます。スクリプトの機能には影響しません。
スクリプトの例
フェイルセーフ計算機:
アプリケーションに 「Finder」
と伝えます-- 変数を設定します
the1 を (ダイアログ「1 番目」を表示デフォルトの回答「ここに数値」buttons { 「続行」}デフォルトのボタン1 )の返されたテキストに設定します the2 を(ダイアログ「2 番目」を表示デフォルトの回答「ここに数値」buttons { 「続行」}デフォルトのボタン1 )の返されたテキストに設定しますtry the1をthe1として整数に設定しますthe2をthe2として整数に設定しますエラー時にダイアログ「計算機には数値のみ入力できます。」とタイトル「エラー」を表示buttons { 「OK」}デフォルトのボタン1戻りますend try
-- 加算しますか?
(ダイアログを表示"加算しますか?"ボタン{ "いいえ" , "はい" }デフォルトボタン2 )から返されたボタンが"はい"の場合 、回答を( the1 + the2 )に設定し、タイトルが"回答"のダイアログ回答を表示します。ボタン{ "OK" }デフォルトボタン1 は回答と答えます-- 減算しますか? そうでない場合(ダイアログを表示"減算しますか?"ボタン{ "いいえ" , "はい" }デフォルトボタン2 )から返されたボタンが"はい"の場合、回答を( the1 - the2 )に設定し、タイトルが"回答"のダイアログ回答を表示します。ボタン{ "OK" }デフォルトボタン1 は回答と答えます-- 乗算しますか? そうでない場合(ダイアログを表示"乗算しますか?"ボタン{ "いいえ" , "はい" }デフォルトボタン2 )から返されたボタンが"はい"の場合、回答を( the1 * the2 )に設定し、タイトルが"回答"のダイアログ回答を表示します。ボタン{ "OK" }デフォルトボタン1 は回答と答えます-- 除算しますか? それ以外の場合は、ボタンが(ダイアログ「分割しますか?」ボタン{ 「いいえ」、「はい」}デフォルトボタン2 )が「はい」の場合、回答を( the1 / the2 )に設定し、タイトル「回答」ボタン{ 「OK」}デフォルトボタンでダイアログ回答を表示します
1
答えて、 そうでなければ
遅延1 「機能が選択されていません。操作はキャンセルされました。」と言って終了
終わり 伝える
シンプルなユーザー名とパスワードのダイアログ ボックス シーケンス。ここでは、ユーザー名は John、パスワードは app123 です。
アプリケーション 「Finder」に passAns を「app123」に設定userAnsを「John」に設定( 「ユーザー名」ダイアログを表示、デフォルトの回答「」) のテキストがuserAnsの場合、ダイアログ「正しい」ボタン{ 「続行」}デフォルトボタン1を表示( 「ユーザー名: John」ダイアログを表示、戻り& 「パスワード」デフォルトの回答「」ボタン{ 「続行」}非表示の回答を含むデフォルトボタン1 )のテキストがpassAnsの場合、ダイアログ「アクセス許可」ボタン{ 「OK」}デフォルトボタン1を表示 そうでない場合、ダイアログ「パスワードが正しくありません」ボタン{ 「OK」}デフォルトボタン1を表示そうでない場合、ダイアログ「ユーザー名が正しくありません」ボタン{ 「OK」}デフォルトボタン1 を表示end if end tell
開発ツール
スクリプトエディター
スクリプト エディタは、スクリプトの作成、検証、コンパイル、実行、デバッグを行うツールを含む、AppleScript 用の統合プログラミング環境を提供します。また、スクリプト可能なアプリケーションから AppleScript 辞書を開いて表示したり、さまざまな形式 (コンパイルされたスクリプト ファイル、アプリケーション パッケージ、スクリプト バンドル、プレーン テキスト ファイル) でスクリプトを保存したりするためのメカニズムも提供し、通常は構文の強調表示や事前に記述されたコード スニペットなどの機能も提供します。
Appleより
- AppleScript エディタ(スクリプトエディタ)
- macOSに同梱されているAppleScriptのエディタ。Mac OS X Snow Leopard (10.6)からOS X Mavericks (10.9)まではAppleScriptエディタ、macOSのそれ以前とそれ以降のすべてのバージョンではスクリプトエディタと呼ばれている。スクリプトはドキュメント編集ウィンドウで記述され、コンパイルして実行することができる。これらのウィンドウには、ログ情報、実行結果、およびデバッグ目的で利用できるその他の情報を表示するさまざまなペインが含まれている。スクリプト辞書と事前に記述されたコードスニペットには、アプリケーションメニューからアクセスできる。OS X Yosemite (10.10)以降、スクリプトエディタにはAppleScriptとJavaScriptの両方で記述する機能が含まれている。[14]
- エックスコード
- AppleScript を編集したり、AppleScript で記述された本格的なアプリケーションを作成したりするための機能を備えたアプリケーション開発ツール スイートです。
第三者から
- スクリプト デバッガー( Late Night Software製)
- AppleScript 用のサードパーティの商用 IDE。Script Debugger は、より高度な AppleScript 環境で、スクリプト作成者はシングルステップ、ブレークポイント、関数/サブルーチンのステップ インとステップ アウト、変数の追跡などを使用して AppleScript をデバッグできます。Script Debugger には、実際の状況で辞書がどのように機能するかをユーザーが確認できる高度な辞書ブラウザも含まれています。つまり、辞書の内容を単に一覧表示するだけでなく、たとえばPagesでドキュメントを開いて、辞書の用語がそのドキュメントにどのように適用されるかを確認できるため、辞書のどの部分を使用するかを簡単に判断できます。Script Debugger は、基本的なアラートとダイアログ以外の GUI を使用してスクリプトを作成するようには設計されておらず、スクリプトのコーディングとデバッグに重点を置いています。
- スマイルとスマイルラボ
- AppleScript用のサードパーティ製フリーウェア/商用IDE。完全にAppleScriptで書かれています。[15] Smileは無料で、主にAppleScript開発用に設計されています。SmileLabは、数値解析、グラフ作成、マシン自動化、Web制作のための広範な追加機能を備えた商用ソフトウェアです。SmileとSmileLabは、さまざまなウィンドウを使用します。完全なスクリプトを実行および保存するためのAppleScriptウィンドウ、コードを1行ずつテストするためのAppleScriptターミナル、テキストとXMLを操作するためのUnicodeウィンドウです。ユーザーは、AppleScriptの組み込みダイアログが不十分な状況のために、ダイアログと呼ばれる複雑なインターフェイスを作成できます。
- ASObjC Explorer 4、Shane Stanley 作
- AppleScript、特にAppleScriptObjC用の、販売が中止されたサードパーティの商用IDE。[16]主な機能は、Cocoaオブジェクト/イベントのログ、デバッグ、コード補完です。ユーザーは、他のスクリプト可能なアプリケーションと同様に、Cocoaイベントとオブジェクトを読み取ることができます。このツールは、もともとAppleScriptライブラリ(OS X Mavericksで利用可能)用に構築されました。AppleScriptライブラリは、再利用可能なAppleScriptコンポーネントを目的としており、組み込みのAppleScript辞書(sdef)をサポートしています。ASObjC Explorer 4は、外部のXcodeスクリプトエディタにもなります。
- FaceSpan(Late Night Software社)
- グラフィックユーザーインターフェースを備えたAppleScriptアプリケーションを作成するための、販売が中止されたサードパーティの商用IDE。[17]
スクリプトランチャー
AppleScript はスクリプト エディタから実行できますが、通常はスクリプト エディタ アプリケーションを開かずにスクリプトを直接実行する方が便利です。これを行うには、いくつかのオプションがあります。
- アプレット
- AppleScriptはスクリプトエディタからアプリケーション(アプレット、またはドラッグアンドドロップによる入力を受け入れる場合はドロップレットと呼ばれる)として保存できます。[5] :69 アプレットはDock 、 Finderウィンドウのツールバー、 Spotlight、サードパーティ製アプリケーションランチャー、またはアプリケーションを実行できるその他の場所から実行できます。
- フォルダアクション
- AppleScript のフォルダアクションを使用すると、フォルダ内で特定の変更 (ファイルの追加や削除など) が発生したときにスクリプトを起動できます。[18]フォルダアクションは、フォルダをクリックしてコンテキストメニューからフォルダアクションの設定... を選択することで割り当てることができます。このコマンドの場所は、Mac OS X 10.6.x では以前のバージョンと若干異なります。同じアクションは、Hazel などのサードパーティ製ユーティリティでも実行できます。[19]
- ホットキーランチャー
- システム環境設定のキーボードとマウスの 設定パネルを使用して、スクリプトメニューでAppleScriptにキーボードショートカットを割り当てることができます。さらに、Alfred、[20] FastScripts、[21] Keyboard Maestro 、[22] QuicKeys、[23] Quicksilver、[24] TextExpander [25]など、キーの組み合わせを使用してオンデマンドでAppleScriptを実行できるさまざまなサードパーティ製ユーティリティが利用可能です。
- スクリプトメニュー
- このシステム全体のメニューは、macOSのメニューバーからAppleScriptへのアクセスを提供しており、どのアプリケーションが起動していても表示されます。[26] (さらに、多くのAppleアプリケーション、一部のサードパーティアプリケーション、および一部のアドオンは、独自のスクリプトメニューを提供しています。これらはさまざまな方法でアクティブ化される場合がありますが、すべて基本的に同じように機能します。) スクリプトメニューでスクリプトを選択すると、スクリプトが起動します。Mac OS X 10.6.x以降では、システム全体のスクリプトメニューは、スクリプトエディタの環境設定から有効にできます。Mac OS Xの以前のバージョンでは、AppleScriptユーティリティアプリケーションから有効にできました。最初に有効にすると、スクリプトメニューにはかなり汎用的で機能的なAppleScriptのデフォルトライブラリが表示されます。これは、スクリプトエディタで開いて、AppleScriptの学習用の例として使用することもできます。スクリプトは、特定のアプリケーションがフォアグラウンドにある場合にのみメニューに表示されるように整理できます。
- Unix コマンドラインと launchd
- AppleScriptは、Unixのコマンドラインから実行することも、osascriptコマンドラインツールを使用してスケジュールされたタスクのlaunchdから実行することもできます。[5] : 716 osascriptツールは、コンパイルされたスクリプト(.scptファイル)とプレーンテキストファイル(.applescriptファイル - 実行時にツールによってコンパイルされます)を実行できます。スクリプトアプリケーションは、Unixのopenコマンドを使用して実行できます。
AppleScript リソース
AppleScript ライブラリ
再利用可能なAppleScriptモジュール(OS X Mavericks以降で利用可能)は、AppleScriptまたはAppleScriptObjCで記述され、特定の場所にスクリプトファイルまたはバンドルとして保存され、[28]他のスクリプトから呼び出すことができます。バンドルとして保存すると、ライブラリにAppleScript辞書(sdef)ファイルを含めることができ、[29]スクリプト機能追加のように機能しますが、AppleScriptまたはAppleScriptObjCで記述されています。
AppleScriptスタジオ
CocoaインターフェースをAppleScriptアプリケーションに接続するためのフレームワーク。Mac OS X 10.4および10.5のXcodeパッケージの一部。現在はAppleScriptObjCに置き換えられ、非推奨となっている。[30] : 438
AppleScriptオブジェクト
Cocoa開発ソフトウェアフレームワーク。AppleScript /Objective-CまたはASOCとも呼ばれ、[31] Mac OS X Snow Leopard以降のXcodeパッケージの一部です。[32] AppleScriptObjCにより、AppleScriptはCocoaのクラスとメソッドを直接使用できます。[33]次の表は、macOSのさまざまなバージョンでのAppleScriptObjCの可用性を示しています。[34]
AppleScriptObjC は、以降のすべての Mac OS X バージョンで使用できます。
オートメーター
アクションからワークフローが構築されるグラフィカルなモジュール編集環境。プログラミングの知識を必要とせずにAppleScriptの多くの機能を再現することを目的としています。Automatorには、Automatorの簡素化されたフレームワークでは複雑すぎるタスクのために、AppleScriptを格納して実行するように特別に設計されたアクションがあります。[35]
スクリプト可能なコアシステムアプリケーション
macOS に同梱されているこれらのバックグラウンド専用アプリケーションは、AppleScript が通常はスクリプト化できない機能にアクセスできるようにするために使用されます。Mac OS X 10.6.3 以降では、次のスクリプト化可能なアプリケーションが含まれています。
- VoiceOver (スクリプト可能な音声および点字スクリーン リーダー パッケージ)
- システム イベント (スクリプト化できないアプリケーションの制御、特定のシステム機能および基本的なファイル操作へのアクセス)
- プリンタ セットアップ ユーティリティ (印刷ジョブを処理するためのスクリプト可能なユーティリティ)
- 画像イベント(コア画像操作)
- HelpViewer (ヘルプ画面を表示するためのスクリプト可能なユーティリティ)
- データベース イベント (最小限の SQLite3 データベース インターフェース)
- AppleScript ユーティリティ (AppleScript 関連のいくつかの設定をスクリプト化するためのもの)
スクリプト追加機能 (OSAX)
Appleまたはサードパーティによって開発されたAppleScript用のプラグイン。[36]これらは組み込みのコマンドセットを拡張するように設計されており、AppleScriptの機能を拡張し、アプリケーションによって提供される機能への依存をいくらか減らします。macOSには、Standard Additions(StandardAdditions.osax)と呼ばれるスクリプト追加機能のコレクションが含まれており、ユーザーインタラクションダイアログ、ファイルの読み書き、ファイルシステムコマンド、日付関数、テキストおよび数学演算など、AppleScriptのコア機能の一部ではない一連のコマンドとクラスを追加します。このOSAXがなければ、AppleScriptはアプリケーションによって直接提供されない多くの基本的なアクションを実行できません。
言語の基本
クラス(データ型)
アプリケーションでは特殊なクラス (またはデータ型) を定義できますが、AppleScript には組み込みクラスも多数あります。これらの基本データ クラスは言語によって直接サポートされており、スクリプト可能なアプリケーションによって広く認識される傾向があります。最も一般的なクラスは次のとおりです。
- 基本オブジェクト
- application : アプリケーション オブジェクト。主に tell ステートメント (
tell application "Finder" …) の指定子として使用されます。 - script : スクリプト オブジェクト。スクリプト オブジェクトはスクリプトのコンテナーです。すべての AppleScript は実行時にスクリプト オブジェクトを作成し、スクリプト オブジェクトは AppleScript 内で作成できます。
- クラス: 他のオブジェクトのタイプを指定するメタオブジェクト。
- 参照: 有効なオブジェクトを指しているかどうかわからない、評価されていないオブジェクト指定子をカプセル化するオブジェクト。その
contentsプロパティにアクセスすることで、オンデマンドで評価できます。
- application : アプリケーション オブジェクト。主に tell ステートメント (
- 標準データオブジェクト
- 定数:定数値
pi。 、、tabなど、言語で定義された定数が多数ありますlinefeed。 - boolean :ブール値のtrue/false 値。実際にはのサブクラスです
constant。 - number :およびのあまり使用されない抽象 スーパークラス。
integerreal - integer : 整数。組み込みの数学演算子を使用して操作できます。
- real :浮動小数点数(実数)。組み込みの数学演算子を使用して操作できます。
- date : 日付と時刻。
- text : テキスト。AppleScript 2.0以前のバージョン(Mac OS X 10.4以前)では、クラスはおよびとは
text別物であり、3つの動作は多少異なっていた。2.0(10.5)以降では、これらはすべて同義語であり、すべてのテキストはUTF-16 (“ Unicode ”)でエンコードされているものとして扱われる。[37]stringUnicode text
- 定数:定数値
- コンテナ
- リスト: オブジェクトの順序付きリスト。アプリケーションによって定義された他のリストやクラスを含む、任意のクラスを含めることができます。
- レコード: オブジェクトのキー付きリスト。リストに似ていますが、キーと値のペアとして構造化されています。実行時のキー付きアクセスはサポートされていません。すべてのキーはコンパイル時の定数識別子である必要があります。
- ファイルシステム
- エイリアス: ファイル システム オブジェクト (ファイルまたはフォルダー) への参照。オブジェクトが移動または名前変更された場合でも、エイリアスはオブジェクトへのリンクを維持します。
- file : ファイル システム オブジェクト (ファイルまたはフォルダー) への参照。これは静的参照であり、現在存在しないオブジェクトを指す場合があります。
- POSIXファイル: Unix( POSIX )スタイルのスラッシュ(/)表記を使用したプレーンテキスト形式のファイルシステムオブジェクト(ファイルまたはフォルダ)への参照。AppleScriptはPOSIXファイルを使用するたびに自動的に通常のファイルに変換するため、真のデータ型ではありません。[38]
- その他
- RGB カラー:色を操作するコマンドやオブジェクトで使用するために、RGB トリプレット ( 16 ビットの高色形式) を指定します。
- 単位タイプ: 標準単位を変換するクラス。たとえば、値を として定義し
square yards、square feet単位タイプ間でキャストすることで (as演算子を使用) に変換できます。
言語構造
多くの AppleScript プロセスは、コード ブロックによって管理されます。ブロックは、commandコマンドで始まり、 end commandステートメントで終わります。最も重要な構造を次に説明します。
条件文
AppleScript には 2 種類の条件文が用意されています。
-- 単純な条件
文で、 x < 1000の場合 は x をx + 1に設定する
-- 複合条件式
xが3より大きい場合 --コマンドelse -- その他のコマンドend if
ループ
AppleScript の repeat ループには、いくつかのわずかに異なる種類があります。いずれもrepeat 行とend repeat行の間のブロックを何回か実行します。ループは、コマンドexit repeatで途中で停止できます。
永遠に繰り返します。
repeat
-- 繰り返されるコマンド
end repeat
指定された回数繰り返します。
10 回
繰り返し-- 繰り返されるコマンド
繰り返し終了
条件付きループ。repeat whileループ内のブロックは、条件が true と評価される限り実行されます。条件は、ブロックの実行ごとに再評価されます。repeat untilループは、それ以外は同じですが、条件が false と評価される限りブロックが実行されます。
x を 5に 設定し、 x > 0の間繰り返し、 x をx - 1に設定し、繰り返し終了
xを 5に 設定し、 x ≤ 0になるまで繰り返し、 xをx - 1に設定し、繰り返し終了
変数を使用したループ。ループを開始すると、変数に開始値が割り当てられます。ブロックの実行ごとに、オプションのステップ値が変数に追加されます。ステップ値のデフォルトは 1 です。
-- ブロックを 2000 回繰り返し、i は 1 から 2000 までのすべての値を取得します
。repeat with i from 1 to 2000
-- 繰り返されるコマンド
end repeat
-- ブロックを 4 回繰り返し、i は値 100、75、50、25 を取得します。i
を100から25まで- 25ずつ繰り返します -- 繰り返されるコマンドend repeat
リストを列挙します。各反復で、loopVariable を指定されたリスト内の新しい項目に設定します。
合計を 0に 設定して、{ 1、2、3、4、5 }でループ変数を使用して繰り返し、合計を合計+ループ変数に設定して繰り返しを終了
このブロック構造の重要なバリエーションの 1 つは、ハンドラー(関数のようなサブルーチン) を定義するために使用されるon — end ...ブロックの形式です。ハンドラーはon functionName()で始まり、end functionNameで終わり、スクリプト内のどこかから呼び出されない限り、通常のスクリプト フローの一部として実行されません。
ハンドラは、「on」の代わりに「to」を使用して定義することもでき、括弧で囲まれていないラベル付きパラメータを受け入れるように記述することもできます。
AppleScript には、run、open、idle、quit の 4 種類の定義済みハンドラがあり、それぞれが上記の run ハンドラと同じ方法で作成されます。
- ハンドラーを実行する
- スクリプトの実行時に呼び出されるスクリプトのメイン コードを定義します。実行ハンドラー ブロックは、スクリプトに引数が渡されない限りオプションです。明示的な実行ハンドラー ブロックが省略されている場合、ハンドラー ブロック内に含まれていないすべてのコードは、暗黙的な実行ハンドラー内にあるかのように実行されます。
- ハンドラーを開く
- 「on open theItems」を使用して定義されます。
theItemsを開く と、theItems内でthisItemを繰り返し、アプリケーション「Finder」にthisItem を更新するように指示します。繰り返し終了、開く終了
「オープン ハンドラ」を含むスクリプトがアプレットとして保存されると、アプレットはドロップレットになります。ドロップレットは Finder でアイコンによって識別できます。アイコンには矢印が含まれており、アイテムをアイコンにドロップできることを示します。ドロップレットのアイコンにファイルまたはフォルダをドロップすると、ドロップレットのオープン ハンドラが実行されます。ドロップレットのアイコンにドロップされたアイテムへの参照は、オープン ハンドラのパラメータとしてドロップレットのスクリプトに渡されます。ドロップレットは、通常のアプレットと同じように起動して、実行ハンドラを実行することもできます。
- アイドルハンドラー
- アプリケーションがアイドル状態のときにシステムによって定期的に実行されるサブルーチン。
on idol
-- スクリプトの実行が完了したときに実行するコード
return 60 -- アイドル ハンドラを再度実行する前に一時停止する秒数
end idol
アイドル ハンドラは、ステイ オープン アプレットとして保存されたアプレットまたはドロップレットで使用でき、特定のデータやイベントを監視するスクリプトに役立ちます。アイドル時間の長さは、デフォルトでは 30 秒ですが、[39]サブルーチンの最後に 'return x' ステートメントを含めることで変更できます。ここで、x は、システムがハンドラを再度実行する前に待機する秒数です。
- 終了ハンドラ
- アプレットが Quit 要求を受け取ったときに実行されるハンドラー。これを使用して、終了する前にデータを保存したり、その他の終了タスクを実行したりできます。
on quit
-- スクリプトが終了する前に実行するコマンド
continue quit -- スクリプトを実際に終了するために必要なコマンド
end quit
- スクリプトオブジェクト
スクリプト オブジェクトは、次の構文を使用して明示的に定義できます。
スクリプト scriptName
-- スクリプト固有のコマンドとハンドラー
終了 スクリプト
スクリプト オブジェクトは、アプリケーション オブジェクトに使用されるものと同じ「tell」構造を使用でき、ファイルから読み込んだり、ファイルに保存したりできます。スクリプト オブジェクトを使用すると、場合によってはランタイム実行時間を短縮できます。
その他情報
- 変数は厳密に型指定されておらず、宣言する必要もありません。変数は任意のデータ型を取ることができます (スクリプトや関数を含む)。次のコマンドは変数の作成例です。
set variable1 to 1 -- variable1という整数変数を作成します。set variable2 to "Hello" -- variable2 というテキスト変数を作成します。copy { 17 , " doubleday" } to variable3 -- variable3 というリスト変数を作成します。set { variable4 , variable5 } to variable3 -- variable3 のリスト項目を別の変数 variable4 と variable5 にコピーします。set variable6 to script myScript --変数をスクリプトのインスタンスに設定します。
- スクリプト オブジェクトは完全なオブジェクトであり、メソッドとデータをカプセル化し、親スクリプトからデータと動作を継承できます。
- サブルーチンはアプリケーションの tell ブロックから直接呼び出すことはできません。呼び出すには、「my」または「of me」キーワードを使用します。
アプリケーション 「Finder」
にx をmy myHandler ()に設定する か、x をmeのmyHandler ()に設定すると、終了する。
on myHandler ()
--commands
終了 myHandler
追加コマンドのスクリプト作成に同じ手法を使用すると、エラーが減り、パフォーマンスが向上します。
tell application "Finder"
set anyNumber to my ( 5から50までのランダムな数字 ) end tell
オープン スクリプト アーキテクチャ
AppleScript実装の重要な側面は、Open Scripting Architecture ( OSA ) です。[40] Appleは、他のスクリプト言語やQuicKeysやUserLand Frontierなどのサードパーティのスクリプト/自動化製品がAppleScriptと同等に機能するようにOSAを提供しています。AppleScriptはスクリプトコンポーネントとして実装され、そのようなコンポーネントをOSAにインターフェイスするための基本仕様は公開されていたため、他の開発者が独自のスクリプトコンポーネントをシステムに追加できました。スクリプトの読み込み、保存、コンパイル用のパブリッククライアントAPIは、そのようなすべてのコンポーネントに対して同じように機能するため、アプレットとドロップレットはこれらのスクリプト言語のいずれかでスクリプトを保持できることも意味します。
OSAの特徴の1つは、HyperCardの外部コマンドにヒントを得たスクリプティング機能追加、またはOpen Scripting Architecture eXtensionの略称OSAX [36]である。スクリプティング機能追加は、プログラマがAppleScriptの機能を拡張できるようにするライブラリである。スクリプティング機能追加として含まれるコマンドはシステム全体で利用可能であり、アプリケーションに依存しない(§ AppleScriptライブラリも参照)。AppleScriptエディタは、OSA言語の一部を直接編集および実行することもできる。
自動化のための JavaScript
OS X Yosemiteおよびそれ以降のバージョンのmacOSでは、 JavaScript for Automation(JXA)コンポーネントがAppleScriptの唯一の本格的なOSA言語の代替品となっていますが[14]、 Macintosh版のPerl、Python、Ruby、Tclはすべて、OSAコンポーネントでなくてもAppleイベントを操作するネイティブな手段をサポートしています。[30] : 516
JXAはObjective-C (およびC言語)の外国語インターフェースも提供しています。[14] WebKitのJavaScriptCoreエンジンをベースにした環境であるため、JavaScriptの機能セットはシステムのSafariブラウザエンジンと同期しています。JXAはJavaScriptモジュールシステムを提供し、browserify経由でCommonJSモジュールを使用することもできます。[41]
AppleScriptの制限
AppleScript スクリプト言語は、複数のアプリケーションを呼び出す機能に優れていますが、タスク固有の機能自体を実行するようには設計されていません。そのため、たとえば、AppleScript を使用して、集中的な数学演算や長いテキスト処理を効率的に実行することはできません。ただし、AppleScript をシェル スクリプト、Perl スクリプト、その他のスクリプト言語と組み合わせて使用することはできます。これにより、手元のタスクに最も効率的な言語で作業できます。
参照
- ARexx – 1987 年の競争力のあるテクノロジー
参考文献
- ^ abc Cook, William ( 2007). 「AppleScript」(PDF) .プログラミング言語の歴史に関する第3回ACM SIGPLAN会議の議事録。Association for Computing Machinery。pp . 1–21。doi : 10.1145 /1238844.1238845。ISBN 9781595937667. S2CID 220938191。
- ^ Apple Inc. (2022).スクリプトエディタ(バージョン2.11)。2022年11月11日閲覧。
- ^ 「OS X 10.10 Yosemite リリース日」 2014年10月16日. 2014年11月16日閲覧。
- ^ abcd Goldstein, Adam (2005). AppleScript: the missing manual. セバストポル、カリフォルニア州: O'Reilly Media . ISBN 0596008503. OCLC 56912218.
- ^ abcdefghi Sanderson, Hamish; Rosenthal, Hanaan (2009). 「Unix コマンドラインとの対話」. Learn AppleScript (第 3 版). Berkeley: Apress . pp. 863–896. doi :10.1007/978-1-4302-2362-7_27. ISBN 9781430223610. OCLC 308193726.
- ^ Flynn, Laurie (1989 年 2 月 27 日)。「Apple が HyperTalk の標準化を検討」。InfoWorld第11 巻第 9 号、31 ページ。
- ^ 「AppleScript 言語ガイド コマンドリファレンス: do shell script」。developer.apple.com。2019年9月 15 日閲覧。
- ^ 「Appleのベストヒット:重要な製品30選」macworld.com 2019年9月12日閲覧。
- ^ Gruber, John (2013 年 3 月). 「AppleScript の意外な持続性」. Macworld . 30 (3): 100.
- ^ Lovejoy, Ben (2016年11月17日). 「Sal Soghoianは、Macユーザーの自動化の将来について、同社がポジションを廃止する中、『Appleに問い合わせてください』と述べている」9to5mac.com 。 2017年5月8日閲覧。
- ^ Evans, Jonny (2016 年 11 月 17 日)。「Apple は本当に Automator や AppleScript を廃止したいのか? ベテランの Apple 開発者の第一人者 の突然の解雇が Mac コミュニティ全体に衝撃を与える」Computerworld.com。2017年5 月 8 日閲覧。
- ^ Gamet, Jeff (2016 年 11 月 23 日)。「Apple の意図は、Mac の自動化に取り組むことと同じではない」。macobserver.com。2017年5月 8 日閲覧。
- ^ 「スクリプト可能なアプリケーション」。developer.apple.com 。 2018年7月26日閲覧。
- ^ abc Siracusa, John (2014年10月16日). 「OS X 10.10 Yosemite: Ars Technicaレビュー: JavaScript自動化」. Ars Technica . 2017年5月8日閲覧。
- ^ 「Smile and SmileLab ホームページ」satimage.fr . 2017年5月8日閲覧。
- ^ 「ASObjC Explorer 4 は廃止されました」。macosxautomation.com。2017年6月21日時点のオリジナルよりアーカイブ。2017年5月8日閲覧。
- ^ 「Mark Alldritt's Journal » FaceSpan」。blog.latenightsw.com 。 2017年5月8日閲覧。
- ^ 「AppleScript 言語ガイド: フォルダアクションリファレンス」。developer.apple.com。2017年5月 8 日閲覧。
- ^ Miller, Dan (2010 年 12 月 22 日). 「Capsule レビュー: Hazel 2.3」. Macworld .com . 2017 年5 月 8 日閲覧。
- ^ Beam, Brian (2015 年 2 月 10 日)。「Alfred レビュー: この Mac アプリ ランチャーは引き続き優れているが、Alfred Remote は及ばない」。Macworld.com。2017年5 月 10 日閲覧。
- ^ Frakes, Dan (2011 年 6 月 2 日). 「Capsule レビュー: FastScripts 2.5」. Macworld .com . 2017 年5 月 8 日閲覧。
- ^ Breen, Christopher (2013 年 6 月 4 日)。「Mac Gems: Keyboard Maestro 6 は反復タスクの天才」。Macworld .com。2017年5月 10 日閲覧。
- ^ Breen, Christopher (2010 年 5 月 7 日). 「Capsule review: QuicKeys 4」. Macworld .com . 2017 年5 月 8 日閲覧。
- ^ 「AppleScripts – Quicksilver Wiki」。qsapp.com 。 2017年5月10日閲覧。
- ^ Fleishman, Glenn (2015 年 6 月 12 日). 「TextExpander 5 レビュー」. Macworld .com . 2017 年5 月 8 日閲覧。
- ^ 「Mac 自動化スクリプトガイド: システム全体のスクリプトメニューの使用」。developer.apple.com。2017年5 月 8 日閲覧。
- ^ 「osascript(1) Mac OS X マニュアルページ」www.unix.com . 2024年7月23日閲覧。
- ^ “AppleScript ライブラリ”. macosautomation.com . 2020年7月26日時点のオリジナルよりアーカイブ。2017年5月8日閲覧。
- ^ 「WWDC 2013 セッション 416: AppleScript ライブラリの紹介」asciiwwdc.com . 2017 年5 月 8 日閲覧。
- ^ ab Neuburg, Matt (2006). AppleScript: 決定版ガイド(第 2 版). 北京: O'Reilly Media . ISBN 0596102119. OCLC 68694976.
- ^ Tsai, Michael (2014 年 9 月 29 日). 「AppleScript と Yosemite」. mjtsai.com . 2017 年5 月 9 日閲覧。
- ^ 「AppleScriptObjC リリースノート」。developer.apple.com。2017年5月 8 日閲覧。
- ^ Waldie, Ben (2012 年 9 月 6 日). 「Xcode を使用した基本的な AppleScriptObjC (Cocoa-AppleScript) アプリケーションの構築」. peachpit.com . 2017 年5 月 9 日閲覧。
- ^表は Naganoya, Takaaki. "ASObjCExtras Scripting Guide" (PDF)から改変。piyocast.com 。 2022年10月9日時点のオリジナルよりアーカイブ(PDF) 。 2017年5月9日閲覧。
- ^ 「Automator AppleScriptアクションチュートリアル入門」。developer.apple.com 。 2017年5月8日閲覧。
- ^ ab 「テクニカルノート TN1164: Mac OS X のスクリプト追加機能」。developer.apple.com。2017年5 月 8 日閲覧。
- ^ 「AppleScript リリースノート: 10.5 の変更点」。developer.apple.com。2017年5月 8 日閲覧。
- ^ 「POSIX ファイル - クラスリファレンス - AppleScript 言語ガイド」。developer.apple.com。2018年1月 8 日閲覧。
- ^ 「AppleScript 言語ガイド: スクリプト アプリケーションのハンドラ」。developer.apple.com。2013年7月 21 日閲覧。
- ^ 「AppleScript の概要: オープン スクリプティング アーキテクチャ」。developer.apple.com。2017年5月 8 日閲覧。
- ^ 「スクリプトのインポート」。GitHub。JXA -Cookbook。2019 年 12 月 6 日。2019 年12 月 9 日に閲覧。
さらに読む
- 「AppleScript 言語ガイド」。developer.apple.com。2016 年。2017 年5 月 9 日閲覧。
- Munro, Mark Conway (2010)。AppleScript .開発者リファレンス。インディアナポリス: Wiley。ISBN 978-0-470-56229-1. OCLC 468969567.
- Rosenthal, Hanaan; Sanderson, Hamish (2010)。Learn AppleScript: The Comprehensive Guide to Scripting and Automation on Mac OS X (第 3 版)。Berkeley: Apress。doi : 10.1007 / 978-1-4302-2362-7。ISBN 978-1-4302-2361-0. OCLC 308193726.
- Soghoian, Sal ; Cheeseman, Bill (2009)。Appleトレーニング シリーズ: AppleScript 1-2-3。Apple Pro トレーニング シリーズ。バークレー: Peachpit Press。ISBN 978-0-321-14931-2. OCLC 298560807.
- Cook, William ( 2007)。「AppleScript」(PDF)。プログラミング言語の歴史に関する第3回ACM SIGPLAN会議の議事録。ACM。pp. 1–21。CiteSeerX 10.1.1.86.2218。doi : 10.1145 / 1238844.1238845。ISBN 9781595937667. S2CID 220938191。
- フォード・ジュニア、ジェリー・リー (2007)。 『AppleScriptプログラミング入門』。ボストン: Thomson Course Technology。ISBN 978-1-59863-384-9. OCLC 76910522.
- Neuburg, Matt (2006)。AppleScript : The Definitive Guide (第 2 版)。北京、ファーナム: O'Reilly Media。ISBN 0-596-10211-9. OCLC 68694976.
- ゴールドスタイン、アダム (2005)。AppleScript : The Missing Manual。Missing Manual シリーズ。カリフォルニア州セバストポル、ファーナム: O'Reilly Media。ISBN 0-596-00850-3. OCLC 56912218.
- Trinko, Tom (2004)。AppleScript for Dummies。For Dummiesシリーズ(第 2 版)。ホーボーケン、ニュージャージー: Wiley。ISBN 978-0-7645-7494-8. OCLC 56500506。
外部リンク
- 「AppleScript の概要」。developer.apple.com。2007 年。2020 年11 月 7 日閲覧。
- 「Python プログラマーのための AppleScript (比較表)」。aurelio.net . 2005 . 2017 年5 月 9 日閲覧。
- 「Doug's AppleScripts for iTunes」。dougscripts.com 。 2017年5月9日閲覧。
- 「MacScripter AppleScript コミュニティ」。macscripter.net。2017年5 月 9 日閲覧。
