10/02 DragThingで、最前面のDock上で現在選択されているレイヤーの名称を返す
DragThingで、最前面のDockのうち現在選択されているレイヤーの名称を取得するAppleScriptです。
現在選択中のDockの名称……の部分の記法が一番難しかった部分で、AppleScriptの世界では各アプリケーションの最前面のドキュメントに対する指定方法があったりなかったり(まさに、アプリケーション側の対応次第)するわけで、だいたいは「Window 1」にアクセスしてみると大丈夫な場合が多いのですが、これを明示的にfront windowとかfront documentといったアクセス方法が提供されているケースもあり、なかなか悩まされるポイントです。
アプリケーションによっては、Window 1にアクセスできたとしても、Window 1がどのドキュメント(ファイル名)に該当するものなのか、情報を取得できない場合があったり……また、windowではなくdocumentオブジェクト経由でアクセスしてdocument 1で最前面の書類にアクセスできることもあります(これは例外中の例外であり、だいたいdocumentはオープンした順に番号がつきます)。
結局、このScriptを試作できた結果、「選択中のレイヤーで起動回数ランキングを表示」という大物Scriptを作ることができました。
| スクリプト名:DragThingで、最前面のDock上で現在選択されているレイヤーの名称を返す |
| tell application “DragThing“ –最前面のDockの名称を取得 tell window 1 set curDock to name end tell –最前面のDock上で現在選択されているレイヤーの名称を返す tell dock curDock set curLayer to current layer tell layer curLayer set curLayerName to name end tell end tell end tell |
