AppleScript

ウィキペディアから、無料の百科事典
ナビゲーションにジャンプ 検索にジャンプ

AppleScript
パラダイム自然言語プログラミングスクリプティング
デベロッパーアップル社。
初登場1993 ; 29年前 (1993
安定リリース
2.5 / 2014年10月16日; 7年前[1] (2014-10-16)
規律の入力弱くダイナミック
OSSystem 7Mac OS 8Mac OS 9macOS
ライセンスプロプライエタリ( APSLで利用可能なパーツ
ファイル名拡張子.scpt、.scptd、.applescript
Webサイトhttps://developer.apple.com/applescript
に影響を受けた
自然言語HyperTalk

AppleScriptは、Apple Inc.によって作成されたスクリプト言語であり、スクリプト可能なMacアプリケーションの自動制御を容易にしますSystem 7で最初に導入され、現在、システム自動化ツールのパッケージの一部としてmacOSのすべてのバージョンに含まれています。[2] [3]「AppleScript」という用語は、言語自体、その言語で記述された個々のスクリプト、または非公式に、その言語の基礎となるmacOS Open ScriptingArchitectureを指す場合があります。[2] [3]

概要

AppleScriptは主に、Appleイベントを使用してアプリケーション間通信(IAC)を行うためにAppleによって開発されたスクリプト言語です。[2] [3] AppleScriptは、Appleイベントに関連していますが、異なります。Appleイベントは、反復的なタスクを自動化するために、他のアプリケーション間でデータを交換し、他のアプリケーションを制御するように設計されています。

AppleScriptには、アプリケーションとのAppleイベントの送受信に加えて、独自の処理機能がいくつかあります。AppleScriptは、基本的な計算とテキスト処理を行うことができ、拡張可能であるため、言語に新しい関数を追加するスクリプトの追加を使用できます。ただし、主に、AppleScriptは、複雑なタスクを処理するためにアプリケーションとプロセスの機能に依存しています。構造化されたコマンド言語として、AppleScriptは、その目的において、UnixシェルMicrosoft Windows Script Host、またはIBMREXXと比較することができます[要出典]しかし、それは3つすべてとは異なります。その機能に不可欠なのは、Macintoshアプリケーションがアドレス可能なオブジェクトと操作の「辞書」を公開するという事実です。

AppleScriptには、手続き型プログラミングオブジェクト指向プログラミング(特に、スクリプトオブジェクトの構築)、およびその構文における自然言語プログラミングの傾向のいくつかの要素がありますが、これらのプログラミングパラダイムのいずれにも厳密には準拠していません[3] :xxvi 

歴史

1980年代後半、Appleは、HyperCardHyperTalk スクリプト言語を、会社全体および従来のMac OSオペレーティングシステム内でのエンドユーザー開発、およびApple製品とApple以外の製品間のプロセス間通信の標準言語として使用することを検討しました。[4] HyperTalkは、初心者がHyperCardスタックをプログラムするために使用できます。Appleのエンジニアは、同様の、しかしよりオブジェクト指向のスクリプト言語を任意のアプリケーションで使用できるように設計できることを認識しました。AppleScriptプロジェクトは、Macintosh全体を最新化するための研究努力のスピンオフとして生まれ、ついに一部になりました。システム7[5]

AppleScriptは、System 7.1.1(System 7 Pro、System 7への最初のメジャーアップグレード)の一部として1993年10月にリリースされました。[5] QuarkXPress(ver。3.2)は、AppleScriptをサポートした最初の主要なソフトウェアアプリケーションの1つでした。これにより、AppleScriptは出版およびプリプレスの世界で広く採用され、複雑なワークフローを結び付けることがよくありました。これは、QuarkXpressやその他のパブリッシングアプリケーションがMicrosoft Windowsに移植された後でも、パブリッシングとプリプレスでMacintoshの支配的な地位を維持するための重要な要素でした。

Appleの次世代OSでのAppleScriptの将来についてある程度の不確実性があった後、Mac OS X(2002年頃)とそのCocoaフレームワークへの移行により、AppleScriptの有用性と柔軟性が大幅に向上しました。Cocoaアプリケーションを使用すると、アプリケーション開発者は最小限の労力でアプリの基本的なスクリプト機能を実装でき、直接スクリプト可能なアプリケーションの数を増やすことができます。同時に、Unixの基盤への移行と、コマンドを使用してUnixコマンドを直接実行するAppleScriptの機能do shell script[ 6]により、AppleScriptはオペレーティングシステム自体をより強力に制御できるようになりました。[3] :863  AppleScript StudioMac OS X10.2の一部としてリリースXcode 、およびMac OS X 10.6でリリースされた後のAppleScriptObjCフレームワークにより、ユーザーはAppleScriptを使用してCocoaアプリケーションを構築できました。[3] :969 

2006年の記事で、MacworldはAppleScriptをこれまでのAppleの最も重要な30の製品のランキングに含め、17位につけました。[7]

Macworldに関する2013年の記事で、ベテランのMacソフトウェア開発者でコメンテーターのJohn Gruberは、「理論的には、AppleScriptの方がはるかに優れている可能性がありますが、実際には、これが私たちの最高のものです。それはうまくいく。それは、いじくり回す人や上級ユーザーにとって、 iOSに対するMacの利点を例示している。」[8]

2016年10月、長年のAppleScript製品マネージャーで自動化のエバンジェリストであるSal Soghoianは、「ビジネス上の理由で」彼の地位が廃止されたときにAppleを去りました。[9] JohnGruberAndyIhnatkoなどのMacコミュニティのベテランは、一般的に懸念を持って対応し、開発者コミュニティとプロユーザーに対するAppleの取り組みに疑問を投げかけました。[10] Appleのソフトウェアエンジニアリング担当シニアバイスプレジデントであるCraigFederighiは、「macOSの優れた自動化テクノロジーのサポートを継続するつもりです!」とメールで返信しましたが、MacObserverのJeffGametはAppleの自動化全般、特にAppleScriptの将来についての彼の疑問を和らげることはほとんどなかったと意見を述べた。[11]当面の間、AppleScriptは、AutomatorShortcutsServices、およびシェルスクリプトとともに、macOS自動化テクノロジーの1つのコンポーネントのままです。

基本的な考え方

AppleScriptは、アクセス可能なエンドユーザースクリプト言語として使用するように設計されており、アプリケーションを制御し、データやドキュメントにアクセスして変更するためのインテリジェントなメカニズムをユーザーに提供します。AppleScriptは、Macintoshオペレーティングシステムがアプリケーションに情報を送信するために使用する一連の標準化されたデータ形式であるAppleイベントを使用します。これは、 Webサービスの世界でXML-RPCを介してXPathクエリを送信するのとほぼ同じです。[3] :xxvi  Appleイベントを使用すると、スクリプトが複数のアプリケーションで同時に動作し、アプリケーション間でデータを渡すことができるため、人間の介入なしに複雑なタスクを実行できます。[2]たとえば、単純なWebギャラリーを作成するためのAppleScriptは、次のように実行できます。

  1. 写真編集アプリケーションで写真を開きます(そのアプリケーションにOpen File Appleイベントを送信します)。
  2. 写真編集アプリケーションに画像を操作するように指示します(たとえば、解像度を下げる、境界線を追加する、写真クレジットを追加する)
  3. 写真編集アプリケーションに、変更した画像を別のフォルダのファイルに保存するように指示します(そのアプリケーションにAppleの保存および/または閉じるイベントを送信します)。
  4. 新しいファイルパスを(別のAppleイベント経由で)テキストエディタまたはWebエディタアプリケーションに送信します
  5. そのエディタアプリケーションに、写真のリンクをHTMLファイルに書き込むように指示します。
  6. 画像のフォルダ全体(数百または数千の写真)に対して上記の手順を繰り返します。
  7. 修正された写真のHTMLファイルとフォルダーをWebサイトにアップロードするには、AppleイベントをグラフィカルFTPクライアントに送信するか、組み込みのAppleScriptコマンドを使用するか、AppleイベントをUnixFTPユーティリティに送信します。

ユーザーにとって、複数のアプリケーションでの数百または数千のステップが、スクリプトを実行する1つの行為に削減され、タスクははるかに短い時間で、ランダムな人的エラーの可能性なしに実行されます。他のスクリプトが何度も使用されている間、大規模で複雑なスクリプトを1回だけ実行するように開発することができます。

アプリケーションのスクリプト可能な要素は、アプリケーションのスクリプト辞書(アプリケーションの一部として配布されます)に表示され、任意のスクリプトエディターで表示できます。要素間の機能的な関係が緩いため、要素は通常、スイートにグループ化されます。スイートに存在する要素には、クラスとコマンドの2つの基本的な種類があります。

  • クラスはスクリプト可能なオブジェクトです。たとえば、テキスト編集アプリケーションにはほぼ確実にウィンドウ、ドキュメント、テキストのクラスがあり、これらのクラスには変更可能なプロパティ(ウィンドウサイズ、ドキュメントの背景色、テキストフォントサイズなど)があります。 、および他のクラスを含めることができます(ウィンドウには1つ以上のドキュメントが含まれ、ドキュメントにはテキストが含まれ、テキストオブジェクトには段落と単語および文字が含まれます)。
  • 対照的に、コマンドはスクリプト可能なオブジェクトに与えることができる命令です。AppleScriptのブロックの一般的な形式は、スクリプト可能なオブジェクトにコマンドを実行するように指示することです

すべてのスクリプト可能なアプリケーションは、通常はStandard Suiteと呼ばれるいくつかの基本的なコマンドとオブジェクト(ファイルを開く、閉じる、または保存するコマンド、何かを印刷するコマンド、終了するコマンド、データを変数に設定するコマンド)、アプリケーション自体のスクリプト可能なプロパティ。多くのアプリケーションには、アプリケーション自体が実行できる任意のタスクを実行できる多数のスイートがあります。例外的に、アプリケーションは独自のスクリプト辞書を含むプラグインをサポートする場合があります。

AppleScriptは、ユーザーの操作を記録することで直感的にスクリプトを作成できるように設計されています。このようなAppleScriptの記録可能性は、アプリに組み込む必要があります。アプリは、AppleイベントとAppleScriptの記録をサポートする必要があります。[12] FinderはAppleScriptの記録をサポートしているため、参照に役立ちます。AppleScript Editor(Script Editor)を開き、[Record]ボタンをクリックすると、記録可能なアプリのユーザーアクションが同等のAppleScriptコマンドに変換され、ScriptEditorウィンドウに出力されます結果のスクリプトを保存して再実行し、元のアクションを複製したり、より一般的に役立つように変更したりできます。

コメント

コメントは複数の方法で作成できます。1行のコメントは、2つのハイフン(-)で始めることができます。Mac OS XLeopardで最初にリリースされたAppleScript2.0では、番号記号(#)で始まる場合もあります。これにより、自己完結型のAppleScriptスクリプトを、シバン行 #!/usr/bin/osascriptで始まる実行可能テキストファイルとして保存できます 。例:

-これは1行のコメント
です#これもそうです!(Mac OS X Leopard以降)

複数行を占めるコメントの場合、AppleScriptは内部にアスタリスクが付いた括弧を使用します。例:

(*これは
複数

コメントです*)

こんにちは世界!

AppleScriptでは、従来の「Hello、World!」プログラムは、次のようなさまざまな形式で作成できます。

ダイアログ 「Hello、world!」を表示します  -[OK]ボタンと[キャンセル]ボタンのあるモーダルウィンドウ
-または
アラート 「Hello、world!」を表示します  -単一の[OK]ボタンとアラートを表示するアプリを表すアイコンが付いたモーダルウィンドウ
-または
「Hello、world!」と言います  -合成されたコンピューターの音声を使用した音声メッセージ 

AppleScriptには、ダイアログ、アラート、選択肢のリストなど、いくつかのユーザーインターフェイスオプションがあります。⌥ Option(スクリプトエディタで+を入力して生成される文字¬は、return複数行にわたる単一のステートメントの継続を示します。)

-ダイアログ
セット dialogReplytodisplay ダイアログ「DialogText」¬デフォルト 回答「 TextAnswer ¬非表示の回答false¬ボタン{ 「Skip」「Okay」「Cancel」} ¬デフォルトのボタン「Okay」¬キャンセルボタン「Skip」¬タイトル「ダイアログウィンドウタイトル」付き¬アイコンノート付き¬ 15日あきらめる  
	   
	   
	    
	   
	   
	   
	   
	   
-リスト
セット から選択chosenListItemリスト から 選択 { "A"  "B"  "3" }  ¬
	タイトル"リストタイトル" ¬プロンプト"プロンプトテキスト" ¬デフォルトアイテム"B" ¬OK ボタン" Looks良い!" ¬ボタン名をキャンセル「いいえ、再試行てください」¬複数選択が許可されますfalse¬空の選択が許可されます  
	   
	   
	    
	    
	    
	   
 
-アラート
セット resultAlertReplyはアラート 「アラートテキスト」 表示 します¬警告として¬ボタン{ 「スキップ」「OK」「キャンセル」} ¬デフォルトボタンキャンセルボタン1¬2あきらめます 
	  
	    
	   
	   
	   

各ユーザーインタラクションメソッドは、クリックされたボタン、選択されたアイテム、または入力されたテキストの値を返し、さらに処理することができます。例えば:

アラート 「Hello、world!」を表示します  ボタン { "大雑把に辞退"  "喜んで受け入れる" }
答え「喜んで受け入れる」の場合結果のボタンが返されるように答え設定し それ以外の場合はビープ音5で「Piffle!」と言います。終了する場合     
    
	 

	 
 

自然言語の比喩

Appleイベントはアプリケーションにメッセージを送信する方法ですが、AppleScriptはAppleイベントを送信するために設計された特定の言語です。初心者にとって使いやすいという目的に沿って、AppleScript言語は、グラフィカルユーザーインターフェイスがデスクトップメタファーで設計されているのと同じように、自然言語 メタファーで設計されています。よく書かれたAppleScriptは、誰でも読んで理解できるように十分に明確であり、簡単に編集できる必要があります。この言語は、主にHyperCardのHyperTalk言語に基づいており、カードとスタックのHyperCardの世界だけでなく、理論的には任意のドキュメントを参照するように拡張されています。この目的のために、AppleScriptチームはAppleEventオブジェクトモデルを導入しました(AEOM)。特定のアプリケーションが「認識している」オブジェクトを指定します。

AppleScript言語の中心は、組み合わせることができる名詞と動詞として機能する用語の使用です。たとえば、ページ、ドキュメント、またはページの範囲(printPage、printDocument、printRangeなど)を印刷するための別の動詞ではなく、AppleScriptは、ページなどのオブジェクトと組み合わせることができる単一の「印刷」動詞を使用します。ドキュメントまたはページの範囲。

 ページ 1を印刷

 ドキュメント 2を印刷する

 ドキュメント21〜5ページを 印刷ます     

一般に、AEOMは、「ドキュメント」や「段落」などの多数のオブジェクトと、「切り取り」や「閉じる」などの対応するアクションを定義します。システムはオブジェクトのプロパティを参照する方法も定義しているため、「ドキュメント「GoodDay」の3番目の段落」または「フロントウィンドウの最後の単語の色」を参照できます。AEOMは、アプリケーションディクショナリを使用して、Appleイベントを人間が読める用語に関連付け、人間が読めるAppleScriptとバイトコードのAppleイベントの間を行き来できるようにします。プログラムのどの要素がスクリプト可能であるかを発見するために、サポートされているアプリケーションの辞書を表示できます。Xcodeおよびスクリプトエディターアプリケーションでは、

このようなメッセージのターゲットとなるアプリケーションを指定するために、AppleScriptは「tell」構造を使用します。

アプリケーションに 「MicrosoftWord」を終了する終了する 
  
 

あるいは、不定詞を使用して、tellを1行で表すこともできます。

 アプリケーション 「MicrosoftWord」  終了するように指示します

「コアスイート」のイベント(アクティブ化、開く、再開、閉じる、印刷、および終了)の場合、アプリケーションは、推移的なコマンドへ の直接オブジェクトとして提供される場合があります。

 アプリケーション 「MicrosoftWord」を終了します

オブジェクト階層の概念は、ネストされたブロックを使用して表現できます。

 アプリケーションに 「QuarkXPress」
  を通知 するドキュメント 1
    を通知する 2ページ を通知するテキストボックス1を通知する単語5「Apple」に設定するendTell End Tell End Tell End Tell
         
            
       
     
   
 

オブジェクト階層の概念は、ネストされた前置詞句を使用して表現することもできます

 TIFF画像「マイビットマップ」3行目ピクセル7       

これは、別のプログラミング言語では、この擬似コードのように、順次メソッド呼び出しとして表現される場合があります。

getTIFF 「マイビットマップ」)。getRow 3 )。getPixel 7 );

AppleScriptには、序数カウントの「最初の段落」と、枢機卿の「段落1」の構文が含まれています。同様に、数字自体はテキストまたは数値で参照できます。「5」、「5番目」、「5」はすべてサポートされています。それらはAppleScriptの同義語です。また、「the」という単語は、読みやすさを向上させるために、スクリプト内のどこでも合法的に使用できます。スクリプトの機能には影響しません。

スクリプトの例

フェイルセーフ計算機:

 アプリケーション "Finder"
	に通知-変数
	を設定し、1 テキストに設定します表示ダイアログ"1st"デフォルトの回答"ここに番号"ボタン{ "続行" }デフォルトボタン1 the2 テキストに設定ます表示ダイアログ"2nd"デフォルト) 「ここに番号を付ける」ボタンに答える{ 「続行」}デフォルトボタン1 the1をに設定してみてください            
	              
	
		   the1  as  integerは、エラー表示ダイアログでthe2the2 as integerに
		設定し ます。「電卓に入力できるのは数値のみです。」タイトル付き「ERROR」ボタン{ 「OK }デフォルトボタン1return end try    
	 
		         
		
	 
	
	 -  追加?
	表示ダイアログ「追加?」ボタン{ 「いいえ」「はい」}デフォルトボタン2 から返さたボタン「はい」の場合 ansthe1 + the2 表示ダイアログansタイトル「Answer」ボタン{ "で設定します。 OK " }デフォルトのボタン1はansと言います-減算しますか?	それ以外の場合ボタン             
		     
		         
		 
	
	     表示ダイアログ 「減算?」 ボタン { 「いいえ」 「はい」} デフォルト ボタン 2   「はい」の 場合、
		ansを(the1-the2 表示ダイアログans タイトル回答ボタン{ OK }デフォルトボタンで設定します。 1は答えを言います-乗算しますか?	それ以外の場合ボタンが戻った場合表示ダイアログ「乗算?」    
		         
		 
	
	        { "いいえ"  "はい" } デフォルト ボタン 2   "はい"で 
		ansthe1  * the2 表示ダイアログansタイトル"回答"ボタン{ "OK "	 }デフォルトボタン1say ans --Divide それ以外の場合ボタンが戻った場合表示ダイアログ「分割?」ボタン{ 「いいえ」「はい」    
		         
		 
	
	          デフォルトの ボタン 2   「はい」の 場合、
		ansthe1 / the2 )に設定する と、タイトルが「Answer」ボタンのダイアログansが表示されます{ 「OK」}デフォルトのボタン1ans else delay1「関数を選択していません。操作はキャンセルされました。」終了する場合    
		         
		 
	
		 
		 
	 
	
終わり を告げる

単純なユーザー名パスワードのダイアログボックスシーケンス。ここで、ユーザー名はJohn、パスワードはapp123です。

 アプリケーション 「Finder」
	 passAns「app123」 設定ます。返されテキストがuserAns場合、 userAns「John」に設定ますダイアログ「正しい」ボタン表示します{ 「続行」}デフォルトボタン1 表示ダイアログ「ユーザー名:ジョン」テキストが返された場合return "パスワード" 
	   
	           
		      
		          デフォルトの 回答 "" ボタン { "続行" } デフォルトの ボタン 1  非表示の 回答  passAnsで 
			ダイアログ 「アクセス許可」 ボタンを表示します { "OK" } デフォルトの ボタン 1else
		ダイアログの「パスワードが正しくありません」ボタン
			{ " OK" }デフォルトのボタン1終了ifelseダイアログ「不正なユーザー名」ボタン{ 「OK」を表示}      
		 
	
		    デフォルトの ボタン 1
	終了 する場合
終了 

開発ツール

スクリプトエディタ

スクリプトエディタは、スクリプトの作成、検証、コンパイル、実行、およびデバッグのためのツールを含む、AppleScript用の統合プログラミング環境を提供します。また、スクリプト可能なアプリケーションからAppleScript辞書を開いて表示し、スクリプトをさまざまな形式(コンパイル済みスクリプトファイル、アプリケーションパッケージ、スクリプトバンドル、プレーンテキストファイル)で保存するメカニズムを提供し、通常、構文の強調表示や事前に作成されたコードスニペットなどの機能を提供します。

Appleから

AppleScriptエディター(スクリプトエディター)
macOSにパッケージ化されたAppleScriptのエディターで、Mac OS X Snow Leopard(10.6)からOS X Mavericks(10.9)までのAppleScript Editorと、以前およびそれ以降のすべてのバージョンのmacOSのScriptEditorと呼ばれます。スクリプトは、コンパイルして実行できるドキュメント編集ウィンドウで記述されます。これらのウィンドウには、ログに記録された情報、実行結果、およびその他の情報をデバッグ目的で利用できるさまざまなペインが含まれています。スクリプト辞書と事前に作成されたコードスニペットへのアクセスは、アプリケーションメニューから利用できます。OS X Yosemite (10.10)以降、スクリプトエディタにはAppleScriptとJavaScriptの両方で書き込む機能が含まれています。[13]
Xcode
AppleScriptを編集したり、AppleScriptで記述された本格的なアプリケーションを作成したりするための機能を備えたアプリケーションを開発するためのツールスイート。

サードパーティから

深夜のソフトウェアからのスクリプトデバッガー
AppleScript用のサードパーティの商用IDE。Script Debuggerは、スクリプトライターがシングルステップブレークポイント、関数/サブルーチンのステップインおよびステップアウト、変数トラッキングなどを介してAppleScriptをデバッグできるようにする、より高度なAppleScript環境です。ScriptDebuggerには、ユーザーが表示できる高度な辞書ブラウザーも含まれています。実世界の状況で動作している辞書。つまり、辞書がカバーするものの単なるリストではなく、Pagesでドキュメントを開くことができますたとえば、辞書の用語がそのドキュメントにどのように適用されるかを確認して、辞書のどの部分を使用するかを簡単に決定できるようにします。Script Debuggerは、基本的なアラートとダイアログ以外はGUIを使用してスクリプトを作成するようには設計されていませんが、スクリプトのコーディングとデバッグに重点を置いています。
SmileとSmileLab
AppleScript用のサードパーティのフリーウェア/商用IDE。それ自体は完全にAppleScriptで記述されています。[14] Smileは無料で、主にAppleScript開発用に設計されています。SmileLabは、数値解析、グラフ作成、機械自動化、およびWeb作成のための広範な追加機能を備えた商用ソフトウェアです。SmileとSmileLabは、さまざまなウィンドウを使用します。完全なスクリプトを実行および保存するためのAppleScriptウィンドウ、コードを1行ずつテストするためのAppleScript端末、テキストとXMLを操作するためのUnicodeウィンドウです。ユーザーは、AppleScriptの組み込みダイアログが不十分な状況で、ダイアログと呼ばれる複雑なインターフェイスを作成できます。
ASObjC Explorer 4、ShaneStanleyから
AppleScript、特にAppleScriptObjC用に廃止されたサードパーティの商用IDE [15]主な機能は、Cocoaオブジェクト/イベントのログ記録、デバッグ、およびコード完了です。ユーザーは、他のスクリプト可能なアプリケーションと同様に、Cocoaのイベントやオブジェクトを読み取ることができます。このツールは元々、AppleScriptライブラリOS X Mavericksで利用可能)用に構築されました。AppleScriptライブラリは、再利用可能なAppleScriptコンポーネントを目的としており、組み込みのAppleScriptディクショナリ(sdef)をサポートしています。ASObjC Explorer 4は、外部Xcodeスクリプトエディターにすることもできます。
深夜のソフトウェアからのFaceSpan
グラフィックユーザーインターフェイスを備えたAppleScriptアプリケーションを作成するための廃止されたサードパーティの商用IDE。[16]

スクリプトランチャー

AppleScriptはスクリプトエディタから実行できますが、通常は、スクリプトエディタアプリケーションを開かずにスクリプトを直接実行する方が便利です。これを行うには、いくつかのオプションがあります。

アプレット
AppleScriptは、スクリプトエディタからアプリケーションとして保存できます(アプレット、またはドラッグアンドドロップによる入力を受け入れる場合はドロップレットと呼ばれます)。[3] :69 アプレットは、Dock 、 Finderウィンドウのツールバー、Spotlight、サードパーティのアプリケーションランチャー、またはアプリケーションを実行できるその他の場所から実行できます。
フォルダアクション
AppleScriptフォルダアクションを使用すると、フォルダに特定の変更(ファイルの追加や削除など)が発生したときにスクリプトを起動できます。[17]フォルダアクションは、フォルダをクリックし、コンテキストメニューから[フォルダアクションの設定... ]を選択することで割り当てることができます。このコマンドの場所は、Mac OS X10.6.xでは以前のバージョンとは少し異なります。これと同じアクションは、Hazelなどのサードパーティユーティリティでも実現できます。[18]
ホットキーランチャー
キーボードショートカットは、システム環境設定のキーボードとマウスの設定 設定ペインを使用して、スクリプトメニューでAppleScriptに割り当てることができますさらに、Alfred[19] FastScripts、[20] Keyboard Maestro[21] QuicKeys、[22] Quicksilver[23] TextExpander [24]など、さまざまなサードパーティユーティリティを利用できます。これらのユーティリティは、キーを使用してオンデマンドでAppleScriptを実行できます。組み合わせ。
スクリプトメニュー
このシステム全体のメニューは、実行中のアプリケーションに関係なく、macOSメニューバーからAppleScriptへのアクセスを提供します。[25](さらに、多くのAppleアプリケーション、一部のサードパーティアプリケーション、および一部のアドオンは、独自のスクリプトメニューを提供します。これらはさまざまな方法でアクティブ化できますが、すべて基本的に同じ方法で機能します。)スクリプトメニューが起動します。Mac OS X 10.6.x以降、システム全体のスクリプトメニューはスクリプトエディタの設定から有効にできます; 以前のバージョンのMacOS Xでは、AppleScriptユーティリティアプリケーションから有効にすることができました。最初に有効にすると、スクリプトメニューにかなり一般的で機能的なAppleScriptのデフォルトライブラリが表示されます。これは、スクリプトエディタで開いて、AppleScriptを学習するための例として使用することもできます。スクリプトは、特定のアプリケーションがフォアグラウンドにある場合にのみメニューに表示されるように編成できます。
Unixコマンドラインとlaunchd
AppleScriptは、Unixコマンドラインから実行することも、スケジュールされたタスク用にlaunchdから実行することもできます[3] :716 、osascriptコマンドラインツールを使用します。[26] osascriptツールは、コンパイル済みスクリプト(.scptファイル)とプレーンテキストファイル(.applescriptファイル-これらは実行時にツールによってコンパイルされます)を実行できます。スクリプトアプリケーションは、Unixのopenコマンドを使用して実行できます。

関連するスクリプトの問題

AppleScriptライブラリ
再利用可能なAppleScriptモジュールOS X Mavericks以降で利用可能)。AppleScriptまたはAppleScriptObjCで記述され、スクリプトファイルまたはバンドルとして特定の場所に保存され[27]、他のスクリプトから呼び出すことができます。バンドルとして保存すると、ライブラリにAppleScriptディクショナリ(sdef)ファイルを含めることができます[28]。したがって、スクリプトの追加のように機能しますが、AppleScriptまたはAppleScriptObjCで記述されます。
AppleScript Studio
CocoaインターフェイスをAppleScriptアプリケーションに接続するためのフレームワーク。MacOSX10.4および10.5のXcodeパッケージの一部であり、AppleScriptObjCを優先して非推奨になりました。[29] :438 
AppleScriptObjC
AppleScript / Objective-CまたはASOCとも呼ばれるCocoa開発ソフトウェアフレームワーク[30]は、 Mac OS X SnowLeopard以降のXcodeパッケージの一部です[31] AppleScriptObjCを使用すると、AppleScriptはCocoaクラスとメソッドを直接使用できます。[32]次の表は、さまざまなバージョンのmacOSでのAppleScriptObjCの可用性を示しています。[33]
AppleScriptObjCを各macOSバージョンで使用できる場所
Xcode アプレット内 AppleScriptライブラリ
スクリプトエディタ
10.6 はい
10.7 はい はい
10.8 はい はい
10.9 はい はい はい
10.10 はい はい はい はい
Automator
ワークフローがアクションから構築されるグラフィカルなモジュラー編集環境。これは、プログラミングの知識を必要とせずに、AppleScriptの機能の多くを複製することを目的としています。Automatorには、Automatorの単純化されたフレームワークには複雑すぎるタスクのために、AppleScriptを格納して実行するように特別に設計されたアクションがあります。[34]
スクリプト可能なコアシステムアプリケーション
macOSにパッケージ化されたこれらのバックグラウンド専用アプリケーションは、AppleScriptが通常はスクリプト化できない機能にアクセスできるようにするために使用されます。Mac OS X 10.6.3以降、VoiceOver用のスクリプト可能なアプリケーション(スクリプト可能な聴覚およびブレイルスクリーンリーダーパッケージ)、システムイベント(スクリプト不可能なアプリケーションの制御、特定のシステム機能および基本的なファイル操作へのアクセス)、プリンターセットアップユーティリティ(印刷ジョブを処理するためのスクリプト可能なユーティリティ)、画像イベント(コア画像操作)、HelpViewer(ヘルプ表示を表示するためのスクリプト可能なユーティリティ)、データベースイベント(最小限のSQLite3データベースインターフェイス)、およびAppleScriptユーティリティ(いくつかのAppleScript関連の設定をスクリプト化するため)システムで使用されるいくつかのユーティリティアプリケーションとして。
スクリプトの追加(OSAX)
Appleまたはサードパーティによって開発されたAppleScript用のプラグイン。[35]これらは、組み込みのコマンドセットを拡張し、AppleScriptの機能を拡張し、アプリケーションによって提供される機能への依存をいくらか少なくするように設計されています。macOSには、標準追加( StandardAdditions.osax )と呼ばれるスクリプト追加のコレクションが含まれています。これは、ユーザー操作ダイアログ、ファイルの読み取りと書き込み、ファイルシステムコマンド、日付関数など、AppleScriptのコア機能の一部ではないコマンドとクラスのセットを追加します。 、およびテキストと数学演算。このOSAXがなければ、AppleScriptには、アプリケーションによって直接提供されない多くの基本的なアクションを実行する能力がありません。

言語の必需品

クラス(データ型)

アプリケーションは特殊なクラス(またはデータ型)を定義できますが、AppleScriptにはいくつかの組み込みクラスもあります。これらの基本的なデータクラスは、言語によって直接サポートされており、スクリプト可能なアプリケーションによって広く認識される傾向があります。最も一般的なものは次のとおりです。

  • 基本オブジェクト
    • application:アプリケーションオブジェクト。主にtellステートメント(tell application "Finder" …)の指定子として使用されます。
    • script:スクリプトオブジェクト。スクリプトオブジェクトは、スクリプトのコンテナです。すべてのAppleScriptは、実行時にスクリプトオブジェクトを作成し、スクリプトオブジェクトはAppleScript内で作成できます。
    • class:他のオブジェクトのタイプを指定するメタオブジェクト。
    • 参照:有効なオブジェクトを指している場合とそうでない場合がある未評価のオブジェクト指定子をカプセル化するオブジェクト。contentsそのプロパティにアクセスすることにより、オンデマンドで評価できます。
  • 標準データオブジェクト
    • 定数定数値、、、など、言語で定義された定数がいくつかpiありtabますlinefeed
    • booleanブール値のtrue / false値。実際にはサブクラスconstant
    • 番号:めったに使用されない抽象 スーパークラスintegerreal
    • 整数整数組み込みの数学演算子で操作できます。
    • 実数浮動小数点実数)数。組み込みの数学演算子で操作できます。
    • 日付:日付と時刻。
    • テキスト:テキスト。2.0より前のバージョンのAppleScript(Mac OS X 10.4以下)では、textクラスはととはstring異なりUnicode text、3つは多少異なった動作をしました。2.0(10.5)以降では、これらはすべて同義語であり、すべてのテキストはUTF-16(「Unicode」)でエンコードされたものとして処理されます。[36]
  • コンテナ
    • list:オブジェクトの順序付きリスト。アプリケーションによって定義された他のリストやクラスを含む、任意のクラスを含めることができます。
    • record:オブジェクトのキー付きリスト。キーと値のペアとして構造化されていることを除いて、リストと同様です。ランタイムキーアクセスはサポートされていません。すべてのキーは、コンパイル時の定数識別子である必要があります。
  • ファイルシステム
    • エイリアス:ファイルシステムオブジェクト(ファイルまたはフォルダー)への参照。オブジェクトが移動または名前変更された場合、エイリアスはオブジェクトへのリンクを維持します。
    • file:ファイルシステムオブジェクト(ファイルまたはフォルダー)への参照。これは静的参照であり、現在存在しないオブジェクトを指すことができます。
    • POSIXファイル:Unix( POSIX)スタイルのスラッシュ(/)表記を使用した、プレーンテキストでのファイルシステムオブジェクト(ファイルまたはフォルダー)への参照。AppleScriptは、POSIXファイルが使用されるたびに自動的に通常のファイルに変換するため、真のデータ型ではありません。[37]
  • その他
    • RGBカラー:色を処理するコマンドおよびオブジェクトで使用するためのRGBトリプレット(16ビットハイカラー形式)を指定します。
    • 単位タイプ:標準単位間で変換するクラス。たとえば、値はとして定義され、ユニットタイプ間でキャストすることによって(演算子を使用して)square yards変換されます。square feetas

言語構造

多くのAppleScriptプロセスは、コードのブロックによって管理されます。ブロックは、コマンドコマンドで始まり、コマンド終了ステートメントで終わります。最も重要な構造を以下に説明します。

条件文

AppleScriptは2種類の条件を提供します。


--x < 1000の場合は 単純な条件付きで、 x x +1設定します        


--xが3より大きい場合は 条件付き複合-コマンドelse--他のコマンドはifで終了します   
     

     
 

ループ

AppleScriptの繰り返しループには、わずかに異なるフレーバーがいくつかあります。それらはすべて、繰り返し行終了繰り返しの間のブロックを何度も実行します。コマンドexitrepeatを使用すると、ループを途中で停止できます

永遠に繰り返します。


     repeat-繰り返されるコマンド
endrepeat 

指定された回数だけ繰り返します。

 10 
     繰り返す-繰り返すコマンド
endrepeat 

条件付きループ。条件がtrueと評価される限り、繰り返しwhileループ内のブロックが実行されます。ブロックが実行されるたびに、条件が再評価されます。それ以外の場合はループまでの繰り返しは同じですが、条件がfalseと評価される限り、ブロックが実行されます。

 x  5
リピートに 設定し、 x  >  0
     xxに設定 -1エンドリピート    
 

 x  5に
設定しますx≤0になるまで繰り返し ますxxに設定します-1エンドリピート   
          
 

変数でループします。ループを開始すると、変数が開始値に割り当てられます。ブロックを実行するたびに、オプションのステップ値が変数に追加されます。ステップ値のデフォルトは1です。

-ブロックを2000回繰り返し、iは1から2000までのすべての値を取得します
i  1 から 2000 まで 繰り返し
     ます-繰り返されるコマンド
end  repeat


-ブロックを4回繰り返し 、iは値100、75、50、および25を取得します 。i  100 から 25 まで繰り返し ます--25--繰り返されるコマンドend repeat
    
 

リストを列挙します。各反復で、loopVariableを指定されたリストの新しいアイテムに設定します

 { 1、2、3、4、5 }loopVariable合計  0
リピート  設定合計合計+ loopVariable終了リピート設定_ _ _ _ _ _      
	     
 
アプリケーションターゲティング エラー処理
-シンプルなフォームは、
アプリケーション「Safari」アクティブ化するように指示します    

-複合
tell アプリケーション 「MyApp」
     -アプリendtellの
コマンド 
try--
     エラーでテストされる
コマンド --errorコマンドendtry
     
 

このブロック構造の重要なバリエーションの1つは、ハンドラー(関数のようなサブルーチン)を定義するために使用されるonend ...ブロックの形式です。ハンドラーはonfunctionName ()で始まり、end functionNameで終わり、スクリプトのどこかから呼び出されない限り、通常のスクリプトフローの一部として実行されません。

関数ハンドラー フォルダアクションブロック ハンドラーを実行します
on  myFunction parameters ...)
     -サブルーチンコマンドは
myFunctionを終了します 
 これらのアイテムを受け取った後、thisFolderにフォルダアイテムを追加する場合-フォルダまたはアイテム 適用するコマンドは、フォルダアイテムの 	追加終了ます      
     
    
 実行時
     -コマンド
は実行を終了 します

ハンドラーは、「on」の代わりに「to」を使用して定義することもでき、括弧で囲まれていないラベル付きパラメーターを受け入れるように作成することもできます。

ラベル付けされたパラメーターを持つハンドラー 「to」とラベル付きパラメーターを使用するハンドラー
 時計の周りロック 表示ダイアログ文字列として時計終了ロック-で呼び出されます:現在の日付の周りロック  
	  
 

   
 からyourNumberチェックするに は、bottom≤yourNumberおよびyourNumber≤top場合おめでとうございます!スコアを付けました」というダイアログ表示します。end if end check --called with:7から10までの8をチェックします     
	        
		 
	 
 

      

AppleScriptには、run、open、idle、quitの4種類の定義済みハンドラがあり、それぞれが上記のrunハンドラと同じ方法で作成されます。

ハンドラーを実行します
スクリプトの実行時に呼び出されるスクリプトのメインコードを定義します。引数がスクリプトに渡されない限り、実行ハンドラブロックはオプションです。明示的な実行ハンドラーブロックが省略された場合、ハンドラーブロック内に含まれていないすべてのコードは、暗黙的な実行ハンドラーにあるかのように実行されます。
ハンドラーを開く
「アイテムを開く」を使用して定義されます。
アイテムを 開くと アイテム内のthisItemでリピート
      ます アプリケーション「Finder」にthisItem更新するように指示します。endrepeatend open  
              
       
 

「オープンハンドラ」を含むスクリプトをアプレットとして保存すると、アプレットは液滴になります。液滴は、アイテムをアイコンにドロップできることを示す矢印を含むアイコンによってFinderで識別できます。液滴は開いています。ハンドラーは、ファイルまたはフォルダーがドロップレットのアイコンにドロップされたときに実行されます。ドロップレットのアイコンにドロップされたアイテムへの参照は、開いているハンドラーのパラメーターとしてドロップレットのスクリプトに渡されます。ドロップレットは、通常のアプレットと同じ方法で起動することもできます。実行ハンドラーを実行します。

アイドルハンドラー
アプリケーションがアイドル状態のときにシステムによって定期的に実行されるサブルーチン。
on idle--
     スクリプトの実行が完了したときに実行するコードreturn60--
  アイドルハンドラー 再度実行する前に一時停止する秒数endidle 

アイドルハンドラーは、開いたままのアプレットとして保存されたアプレットまたはドロップレットで使用でき、特定のデータまたはイベントを監視するスクリプトに役立ちます。アイドル時間の長さはデフォルトで30秒ですが[38]、サブルーチンの最後に「return x」ステートメントを含めることで変更できます。ここで、xは、ハンドラーを再度実行する前にシステムが待機する秒数です。 。

ハンドラーを終了します
アプレットがQuit要求を受信したときに実行されるハンドラ。これは、終了する前にデータを保存したり、他の終了タスクを実行したりするために使用できます。
on  quit--
     スクリプトが終了する前に実行するコマンドcontinuequit--
  スクリプト が実際に終了するため 必要endquit
 
スクリプトオブジェクト

スクリプトオブジェクトは、次の構文を使用して明示的に定義できます。

 scriptscriptName-
     スクリプト終了スクリプトに固有のコマンドとハンドラー
 

スクリプトオブジェクトは、アプリケーションオブジェクトに使用されるのと同じ「tell」構造を使用でき、ファイルからロードおよびファイルに保存できます。スクリプトオブジェクトを使用することで、実行時の実行時間を短縮できる場合があります。

その他の情報

  • 変数は厳密に型指定されていないため、宣言する必要はありません。変数は、任意のデータ型(スクリプトや関数を含む)を取ることができます。次のコマンドは、変数の作成例です。
     変数1  1に 設定-変数1と呼ばれる整数変数を作成します
    変数2「こんにちは」に設定します -変数2と呼ばれるテキスト変数を作成しますcopy { 17 "doubleday" }変数3に設定します-変数3と呼ばれるリスト変数を作成しますset { variable4 variable5 } to variable3 --variable3のリスト項目を別々の変数にコピーしますvariable4とvariable5set variable6 to script myScript-変数をスクリプトのインスタンスに設定します   
         
         
         
    
  • スクリプトオブジェクトは完全なオブジェクトです。メソッドとデータをカプセル化し、親スクリプトからデータと動作を継承できます。
  • サブルーチンは、アプリケーションのTellブロックから直接呼び出すことはできません。これを行うには、「my」または「ofme」キーワードを使用します。
 アプリケーション 「Finder」
    xmyHandler ( )設定する -またはxmyHandler ()設定するend tell   
    
         
 

on  myHandler () -コマンドは
    myHandlerを
終了 します

追加コマンドのスクリプトに同じ手法を使用すると、エラーを減らし、パフォーマンスを向上させることができます。

 アプリケーション 「Finder」
	 anyNumbermy 5から50までの乱数)に設定してください end tell      
 

スクリプトアーキテクチャを開く

AppleScript実装の重要な側面は、Open Scripting ArchitectureOSA)です。[39] Appleは、AppleScriptと同等のステータスで機能するために、他のスクリプト言語およびQuicKeysやUserLandFrontierなどのサードパーティのスクリプト/自動化製品にOSAを提供しています。AppleScriptはスクリプトコンポーネントとして実装されており、そのようなコンポーネントをOSAに接続するための基本仕様は公開されており、他の開発者が独自のスクリプトコンポーネントをシステムに追加できるようになっています。パブリッククライアントAPIスクリプトのロード、保存、およびコンパイルは、そのようなすべてのコンポーネントで同じように機能します。つまり、アプレットとドロップレットは、これらのスクリプト言語のいずれかでスクリプトを保持できます。

OSAの機能の1つは、HyperCardの外部コマンドに触発されたスクリプトの追加( Open Scripting Architecture eXtension用のOSAX [35])です。スクリプトの追加は、プログラマーがAppleScriptの機能を拡張できるようにするライブラリです。スクリプトの追加として含まれているコマンドは、システム全体で利用可能であり、アプリケーションに依存しません(§AppleScriptライブラリも参照)。AppleScript Editorは、一部のOSA言語を直接編集して実行することもできます。

自動化のためのJavaScript

OS X Yosemite以降のバージョンのmacOSでは、JavaScript for AutomationJXA )コンポーネントがAppleScriptに代わる唯一の本格的なOSA言語であり[ 13]、MacintoshバージョンのPerlPythonRuby、およびTclはすべてネイティブの動作手段をサポートしています。 OSAコンポーネントでなくてもAppleイベントで。[29] :516 

JXAは、Objective-C(およびC言語)の外国語インターフェースも提供します。[13] WebKitのJavaScriptCoreエンジンに基づく環境であるため、JavaScript機能セットはシステムのSafariブラウザーエンジンと同期しています。JXAはJavaScriptモジュールシステムを提供し、browserifyを介してCommonJSモジュールを使用することもできます。[40]

も参照してください

  • BBEdit —高度にスクリプト化可能なテキストエディタ

参考文献

  1. ^ 「OSX10.10ヨセミテリリース日」2014年10月16日2014年11月16日取得
  2. ^ a b c d ゴールドスタイン、アダム(2005)。AppleScript:不足しているマニュアルセバストポル、カリフォルニア州:オライリーメディアISBN 0596008503OCLC56912218 _
  3. ^ a b c d e f g h i Sanderson、Hamish; ローゼンタール、ハナン(2009)。AppleScriptを学ぶ:Mac OS X(第3版)でのスクリプトと自動化の包括的なガイドバークレー:Apress土井10.1007 / 978-1-4302-2362-7_27ISBN 9781430223610OCLC308193726 _
  4. ^ フリン、ローリー(1989年2月27日)。「HyperTalkで標準化するApplePonders」InfoWorld11、いいえ。9.p。31。
  5. ^ a b Cook、William(2007)。「AppleScript」(PDF)プログラミング言語の歴史(HOPL III)第3回ACMSIGPLAN会議の議事録。Association for Computing Machinery:1–21。土井10.1145 /1238844.1238845ISBN  9781595937667S2CID220938191 _
  6. ^ 「AppleScript言語ガイドコマンドリファレンス:シェルスクリプトを実行する」developer.apple.com 2019年9月15日取得
  7. ^ 「アップルの最大のヒット:30の重要な製品」macworld.com 2019年9月12日取得
  8. ^ グルーバー、ジョン(2013年3月)。「AppleScriptのありそうもない永続性」Macworld30(3):100。
  9. ^ ラブジョイ、ベン(2016年11月17日)。「SalSoghoianは、会社がポジションを排除するにつれて、Macユーザーの自動化の将来について「Appleに尋ねる」と言っています」9to5mac.com 2017年5月8日取得
  10. ^ エヴァンズ、ジョニー(2016年11月17日)。「Appleは本当にAutomator、AppleScriptを殺したいのか?ベテランのApple開発者の第一人者のショック終了はMacコミュニティ全体に衝撃波を送る」Computerworld.com_ 2017年5月8日取得
  11. ^ 配偶子、ジェフ(2016年11月23日)。「Appleの意図は、Macの自動化に取り組むことと同じではありません」macobserver.com 2017年5月8日取得
  12. ^ 「スクリプト可能なアプリケーション」developer.apple.com 2018年7月26日取得
  13. ^ a b c ジョン・シラクサ(2014年10月16日)。「OSX10.10 Yosemite:Ars Technicaレビュー:JavaScriptの自動化」ArsTechnica2017年5月8日取得
  14. ^ 「SmileとSmileLabのホームページ」satimage.fr 2017年5月8日取得
  15. ^ 「ASObjCエクスプローラー4は廃止されました」macosxautomation.com2017年6月21日にオリジナルからアーカイブされました2017年5月8日取得
  16. ^ 「MarkAlldrittのジャーナル»FaceSpan」blog.latenightsw.com 2017年5月8日取得
  17. ^ 「AppleScript言語ガイド:フォルダアクションリファレンス」developer.apple.com 2017年5月8日取得
  18. ^ ミラー、ダン(2010年12月22日)。「カプセルレビュー:ヘーゼル2.3」Macworld.com_ 2017年5月8日取得
  19. ^ ビーム、ブライアン(2015年2月10日)。「Alfredレビュー:このMacアプリランチャーは引き続き輝いていますが、AlfredRemoteはスタックしません」Macworld.com_ 2017年5月10日取得
  20. ^ フレーク、ダン(2011年6月2日)。「カプセルレビュー:FastScripts2.5」Macworld.com_ 2017年5月8日取得
  21. ^ ブリーン、クリストファー(2013年6月4日)。「MacGems:Keyboard Maestro 6は、反復的なタスクの天才です」Macworld.com_ 2017年5月10日取得
  22. ^ ブリーン、クリストファー(2010年5月7日)。「カプセルレビュー:QuicKeys4」Macworld.com_ 2017年5月8日取得
  23. ^ 「AppleScripts– QuicksilverWiki」qsapp.com 2017年5月10日取得
  24. ^ Fleishman、Glenn(2015年6月12日)。「TextExpander5レビュー」Macworld.com_ 2017年5月8日取得
  25. ^ 「MacAutomationスクリプティングガイド:システム全体のスクリプトメニューの使用」developer.apple.com 2017年5月8日取得
  26. ^ 「osascript(1)Mac OSXのマニュアルページ」developer.apple.com 2017年5月8日取得
  27. ^ 「AppleScriptライブラリ」macosautomation.com 2017年5月8日取得
  28. ^ 「WWDC2013セッション416:AppleScriptライブラリの紹介」asciiwwdc.com 2017年5月8日取得
  29. ^ a b ノイブルク、マット(2006)。AppleScript:決定的なガイド(第2版)。北京:オライリーメディアISBN 0596102119OCLC68694976 _
  30. ^ ツァイ、マイケル(2014年9月29日)。「AppleScriptとYosemite」mjtsai.com 2017年5月9日取得
  31. ^ 「AppleScriptObjCリリースノート」developer.apple.com 2017年5月8日取得
  32. ^ Waldie、Ben(2012年9月6日)。「Xcodeを使用した基本的なAppleScriptObjC(Cocoa-AppleScript)アプリケーションの構築」peachpit.com 2017年5月9日取得
  33. ^ 表の適合元:長野家、高明。「ASObjCExtrasスクリプティングガイド」(PDF)piyocast.com 2017年5月9日取得
  34. ^ 「AutomatorAppleScriptアクションチュートリアルの紹介」developer.apple.com 2017年5月8日取得
  35. ^ a b "テクニカルノートTN1164:Mac OSX用のスクリプトの追加"developer.apple.com 2017年5月8日取得
  36. ^ 「AppleScriptリリースノート:10.5の変更」developer.apple.com 2017年5月8日取得
  37. ^ 「POSIXファイル—クラスリファレンス—AppleScript言語ガイド」developer.apple.com 2018年1月8日取得
  38. ^ 「AppleScript言語ガイド:スクリプトアプリケーションのハンドラー」developer.apple.com 2013年7月21日取得
  39. ^ 「AppleScriptの概要:オープンスクリプトアーキテクチャ」developer.apple.com 2017年5月8日取得
  40. ^ 「スクリプトのインポート」GitHubJXA-クックブック。2019年12月6日2019年12月9日取得

さらに読む

外部リンク