Home> Part of Script factory. scriptfactory@mac.com .

AppleScript の活用法(Classic 編)

Contents

AppleScript とは

まずは、やっぱりここから。自分なりの AppleScript 観を語ってみます(ちょっと恥ずかしい)。そもそも、ここは Macintosh の Scirpting の site であって、決して AppleScript だけの site ではない。じゃあなんで、わざわざ AppleScript だけ解説するんだと、思う方もいらっしゃると思いますが、Macintosh 上では、「なにはともあれ、まずは AppleScript 」です。他のスクリプト言語をやるにしてもAppleScriptを知っていると色々と役に立ちまくります。自分は、AppleScript から始まって JGAWK(結構やった)、Frontier(結構やった)、MacPerl(ちょっとだけ、まだまだだな)などをを使うにあたって AppleScript が非常に役に立ちました。とくに Perl や Awk など Unix から移植されたものは、なかなか Macintosh というプラットホームの中でシームレスにつかうのは難しいのですが、そんなとき Perl と他のpプログラムの間に割って入ってお互いをうまくつなげてくれるのが AppleScript だったりします。だから、何はともあれ AppleScript です。

さて、いささか飛躍してしまいましたが、本題に。ふつうスクリプト言語とは C や Fortran などのコンパイラ言語と違って、インタプリタ言語で高度な事が結構簡単にできるように、と作られた言語のことをいいます(たぶん)。その分、できる事が限られていたり、実行速度が遅かったりします。

AppleScript はとくに、その実行速度の遅さには定評がありますが、それを補って余りある特徴があります。それは、「他の GUI を持った Application を interactive に control できる(Application が AppleScript に対応していたら)」というものです。ふつうスクリプト言語とは、それに用意された機能しか使えないのですが(ちょっと言い過ぎかな)、AppleScript は対応しているアプリケーションの数だけできる事が増えます。アプリケーションと interactive に data を構築し、その data を他のアプリケーションに渡して・・・という複数のアプリケーションを駆動しての連係 play が AppleScript では簡単にできます・・・というか、そのための言語らしいです。単なるスクリプト言語だけでなく Macintosh という platform 上で、Universal なマクロ言語でもあるのです。そう、AppleScript は Network を越えてアプリケーションをコントロールする事さえ可能です。こんな事が簡単にできる言語って他にあります?ということは、使うだけの人にはあんまり関係ないですが、まあとにかくお手軽で便利で画期的であるということです。

もちろん、許しがたい欠点もいくつか持っています。連想配列がないとか、正規表現がないとか、亀より実行速度が遅いとか・・・。

AppleScriptのファイル形式

さて、AppleScript はあなたの Macintosh 上で、どのような形で存在しうるでしょうか?たいていアプリケーション形式、コンパイル済みスクリプトファイル、テキストファイルの3つのfile形式でご覧になられると思います。多くの場合、これらのファイルをスクリプト編集プログラムで開くとソースコードを見ることができますが、ソースコードを見れない「実行専用形式」で保存する意地悪な人もいます。僕が配布しているものはすべて、ソースコードを見れますし、再利用してかまいません。というか自分が作ったものを踏み台に、さらにすばらしいものを産み出してくれることを願ってやみません。

アプリケーション形式

Applet Iconとか、Droplet Iconという icon の file は、アプリケーション形式の AppleScript です。普通のアプリケーションと同じように扱えると思ってかまいません。配布されている多くのアップルスクリプトはこの形式でしょう。

Droplet Icon は、ドロップレットと呼ばれ、Drag&Dropを受け付けます。

Applet Icon はアプレットと呼ばれ、ただダブルクリックで起動するだけです。Drag&Drop は受け付けません。

多くのスクリプトはやることやったら勝手に終了します。ちなみに、Command-.(ピリオド)のショートカットキーを押してやると作業を中断して終了してくれます。

中には自動的に終了しないで、定期的に作業を行うようなスクリプトもあります。もちろんそういうスクリプトはその必要があってのことでしょうが、そういったアプリケーション形式のスクリプトを終了するには、明示的に終了の作業(ファイルメニューから終了を選ぶ、もしくはCommand-Q)をしてやる必要があります。

コンパイル済みスクリプトファイル

Compiled Script Iconは、コンパイル済みスクリプトファイルと呼ばれ、スクリプトの骸骨のようなものです。普通、スクリプトメニューを持っているアプリケーションに登録するなどして使います。このファイルだけではスクリプトを実行することができず、何らかのアプリケーションの助けが必要になります。一種のPlug-inだと思っても大間違いではないと思います。

上記のアプリケーション形式のスクリプトは、このコンパイル済みスクリプトファイルの上に、スクリプト実行専用のアプリケーションをかぶせたものであるといえるでしょう。

Finder上で、ダブルクリックすると、スクリプト編集プログラムで開かれます。スクリプト編集プログラムでは、この形式のファイルを実行できたり、アプリケーション形式として保存しなおしたりできます。

この形式のファイル、すなわちPlug-inとしてのAppleScriptをどう扱うかがAppleScriptを活用して、Macintoshを便利に使うかの要になります。たとえば、僕の場合は常に数十もの各種AppleScriptを扱っていますが、それらをすべてApplicationとして管理活用するのは、めんどくさくて現実的ではないでしょう。 くわしくは、下記のAppleScriptの活用を読んでみてください。

テキストファイル

Script Source Iconというiconのファイルは、スクリプトのソースコードが書かれた、ただのテキストファイルです。Finder上でダブルクリックするとスクリプト編集プログラムで開かれます。もちろん適当なテキストエディターで、このファイルの中身を見ることができます。

このファイル形式では、実行することができなくてスクリプト編集プログラムで一度コンパイルしてやる必要があります。普通は、スクリプトを開発途中に、コンパイル済みスクリプトファイルやアプリケーションとして保存できない時に、この形式で保存します。このファイル形式でスクリプトが配布されることはまずないでしょう。

AppleScriptの拡張

実は、AppleScript本体だけでは本当にたいしたことはできません。他のアプリケーションをコントロールしたり、これから述べる「スクリプティング機能追加」というものを使って多くの仕事をこなします。スクリプティング機能追加は、多くの場合 Scriptting Addtion Icon なiconをしていて、OSAX(Open Scriptin Architecture eXtenstion)と呼ばれたりします。OSAXは、AppleScriptにコマンドを追加し、その機能を拡張するもので、Mac OS 8以降の場合はシステムフォルダ直下の「スクリプティング機能追加」フォルダの中に入っています。Mac OS 7.xの場合は機能拡張フォルダの中に、「スクリプティング機能追加」フォルダがあります。

実際、標準の状態で相当な機能がOSAXによって提供されており、これ無しではAppleScriptは何もできないといっても過言ではありません。Mac OS自体もコントロールパネルや、機能拡張によって多くの機能が実現されているのといっしょですね。

OSAXは、標準のものだけではなく、多くの人が作ったOSAXがonline上で非常にたくさん配布されています。online上で配布されているスクリプトには、それらのOSAXをdownloadしてinstallしてやる必要があったりします。実際、自分が配布しているスクリプトはたいてい、何らかの追加のOSAXを必要としています。だって、標準のものだけでは、物足りないものですから。

OSAXは、コントロールパネルや機能拡張と違って新たにinstallしても再起動する必要はありません。また、installするだけでは、悪さする可能性はありません。もちろん、OSAXのできが悪い場合、それを呼び出したスクリプトがエラーを起こしたり、最悪の場合OSごとクラッシュということはありえます。

じゃあ、バカスカOSAXをinstallしてもいいかというと、残念ながら世の中はそんなにうまくできていない。用語のコンフリクトという問題があります。同じIDをもったコマンドで、機能が違った物が存在した場合、スクリプトが本来のコマンドでない物を呼び出してしまって、期待した動作が得られない、もしくはerrorが起きるということがあります。過ぎたるはおよばさるが如しということでしょうか・・・やっぱり本当に必要な物だけinstallしておくことをお薦めします。

自分がよく使うメジャーなOSAXをPick up OSAXにまとめてあります。downloadしてinstallしておくと、なにかと都合がよろしいかと思います。

AppleScriptの活用

AppleScriptの使い方は、何もアプリケーション形式で保存して使ったり、スクリプトメニューを持っているアプリケーションに登録するだけではありません。最近ではフォルダアクションという使い方も出来るようになりましたが、 以下のツールを使えば、AppleScriptをもっと便利に、もっとseamlessにあなたのMacintoshにとけこませることができます。

OSA Menuを使う

AppleScriptを活用するためのもっとも基本的なツールです。機能拡張でメニューバーにスクリプト専用のメニューを追加してくれます。動かないスクリプトがあったりしますが、スクリプトの動作を加速することも可能です。

OSA Menu 解説

常に表示されるメニューと最前面のアプリケーションによって変わるメニューに分けられています。ショートカットキーを登録したスクリプトに割り当てることができます。

Mac OS 8.5からシステムフォルダ直下に「スクリプト」フォルダが採用されましたが、そもそもの始まりは、このOSA Menuにあるみたいです。

細かいことを言うとOSA Menuから、動かないスクリプトがあったり、いろいろと気難しいところがあるのですが、そのへんは、MonologueOSA Menuの特殊な事情にまとめてみました。ご一読ください。

ではOSA Menuのweb siteへ。

CMScriptを使う

コンテキストメニューにスクリプトを登録することができる、コンテキストメニュープラグインです。何がすごいって、どのアプリケーションで、どのようなコンテキストでメニューにスクリプトを登場させるかと行くことが設定出来てしまうのです。設定の仕方はちょっと難しいのですが(いつの日か、詳しく解説しますね)、これはすなわち、AppleScriptでコンテキストメニュープラグインを作れてしまうことを意味しています。これだけあれば、余計なコンテキストメニュープラグインはいらないです。

アプリケーション形式のスクリプトは登録できず、コンパイル済みスクリプトだけしか受け付けてくれないのが玉に傷なんですが、AppleScriptの可能性を広げてくれる逸品であるといえます。

CMScript解説

CMScriptの使い方について、ちょっと書いてみました。CMScriptのススメ

ではCMScriptのweb siteへ。

DragThingを使う

すさまじくメジャーなランチャーソフトであるDragThingには、面白い機能があります。あんまり自分も活用できいないんですが、コンパイル済みスクリプトファイルをDockに登録すると、なんとDragThingから、スクリプトを起動出来てしまうのです。Finder上で、コンパイル済みスクリプトファイルをDouble Clickすると、スクリプト編集プログラムが起動して、そのファイルを開いてしまいますが、DragThingに登録してしまうとDragThingがそのスクリプトを実行してしまうんです。これはすなわち、カスタムなツールパレットを作ることだ出来るということを意味します。

他のランチャーソフトにこういった機能があるのかどうか知りませんが、とにかく面白い機能です。まあ、こんなことができなくても、アプリケーション形式のものを登録すればいいといえばいいのですが、ですけど、いちいちアプリケーションが起動するよりDragThingがスクリプトを実行してくれるほうが、ずっとスマートだと思います。

DragThingは、ただでさえAppleScriptに対応しまくっています。そのうち、DragThingを酷使するAppleScriptを作ってみたいと思う今日このごろです。

ではDragThingのweb siteへ。

で、僕はどのように使い分けているのか?

次に、これらのツールをどのように使い分けるのかですが、人それぞれの趣向と操作の仕方に依存しますから一概には言えないのですが、僕は以下のように使い分けています。


This page was last built on Wed, Feb 17, 2016 ; 11:04:37 AM . Thanks for checking it out!