AppleScript の新機能 (7) - まとめ

Mavericks というか、AppleScript 2.3 の主な変更点をまとめてきました。

これら以外にも変更点はあります。それらについて、補足...のようなまとめ書き。

全く触れなかった変更点として、

  • iCloud のサポート
  • 通知センターが利用できるように
  • Speakable-Workflow

があります。

iCloud のサポート

これは、AppleScript の書類を複数の Mac 間で共有できるってことなんですが、まだ、使ったことがない...。使ったことがないので、不具合にも遭遇していない。あると便利かなと思うのですが、AppleScript Editor 起動時のファイルオープンダイアログの表示はやめてほしいな...。

通知センター

スクリプト内から処理の経過などを通知センターで表示できるようになりました。というか、そういう命令が新しく追加されました。世の中ではこれが一番話題になっているようですね。通知センターを切ってしまっている身にはそれほど関係がない...。

スクリプトのデバック時に役に立つかな。

使い方は専用の命令を呼び出すだけ。

Script Editor で開く

display notification "通知したい本文"

オプションがいくつかあってタイトルとサブタイトル、通知時の音を指定することができます。

Script Editor で開く

display notification "通知したい本文" with title "タイトル" subtitle "サブタイトル" sound name "Glass"

ここで指定する通知音は、システム環境設定の「サウンド」に表示される音声ファイルの名前です。

System_Prefs_Sounds.png

言い換えるなら /System/Library/Sounds 以下のファイル名です。もちろん、ユーザーが追加したものも利用できます。display notification で表示される通知の設定はシステム環境設定の「通知」で変更できます。

System_Prefs_Notifications.png

ここでは AppleScript Editor が表示されていますが、display notification を利用する(した)アプレットやドロプレットはここの「通知センターで表示する項目」に追加されるので、個別に通知に関する設定が行えます。

利用するときの注意点としては、通知をスクリプトの最後に出すときは『通知を出す前にスクリプトが終了してしまうので、スクリプトの終了前にウェイトをおいてください』ってことです。具体的には、

display notification "通知です"
delay 1 -- 通知を出す前にスクリプトが終了してしまうので、1 秒停止

このような感じです。アプレットやドロップレットとしてスクリプトを保存して利用するときに必要な処理です。通知を OS に登録する以前にアプレットが終了してしまうんですね。ちょっとかっこわるいぞ。

また通知で表示されるウィンドウ(?)はクリックすることで通知を出したアプリケーションを全面に表示させることができます。

これを利用し、

  1. なんらかの処理
  2. 通知を表示
  3. 通知をクリック
  4. 再度、処理を実行

と、連続してスクリプトを実行させることができます。同じ処理を何度も繰り返すスクリプトってどんな状況か思い浮かばないのですが、通知センターから起動できるってのはちょっと便利かも。

Speakable-Workflow

これは Automator の話なのですが、Automator で作ったワークフローで Speakable Item を作ることができるようです。いったいなんのことか分からない人の方が多いような気がしますが。自分で作ったスクリプトやワークフローを音声認識を使って起動させることができます。話しかけて Mac を操作できる...と。ただし、英語に限る。

もともと、Mac には音声認識で操作するための機能は入っていました。システム環境設定の「アクセシビリティ」にある「音声認識コマンド」がそれです。

System_Prefs_Accessibility_Speech_Recognition.png

「入」にすると小さいウィンドウが表示されます。

Speech_ Recognition.png

「esc」キーを押しながら話しかけることで処理が行われます。例えば、「Switch to iTunes」などと話しかけると iTunes が前面に表示されます。

話しかけるといってもなんでもいいわけではなく、内蔵されている「コマンド」を発話しなければいけません。このコマンドは「音声コマンドウィンドウ」を表示させることで調べることができます。

Show_Speech_Commands_Window.png

標準の状態でいくつかのコマンドが入っているわけですが、ここにはない処理を行いたいとき『Automator のワークフローでも作ることができますよ』というのが、今回の新機能になります(AppleScript のスクリプトでも可能。これはかなり昔からできるようになっていました)。

コマンドは ~/Library/Speech/Speakable Items に保管されています(音声認識コマンドを利用したことがなければ、このフォルダはありません)。コマンド自体はプロパティリスト形式のテキストファイルで作成することができます(いつのまにかそうなっていたんですね)。

Automator や AppleScript で作ったコマンドもここに保管しておけば音声認識コマンドで利用することができます。ファイル名は英語で...例えば、「Go to Home Folder.scpt」などと保存しておきます。このファイル名がコマンド名になりますので、話しかけるような英語にしておくと音声認識しやすくていいです。単語一つだけだとなかなか認識されにくかったりしますし、他の似たようなコマンドと間違われてしまいます。

使いこなせれば有用で便利には違いないのですが、

  • 英語しか認識できない
  • その英語もネイティブじゃないと認識されにくい
  • その姿は冷静に考えるとけっこう滑稽

といった欠点があるため、あまり陽の目をみない機能になっています。せっかく専用のキャラクターもいたのにね。

OS_9_Speech_Recognition.jpg

その他

あえて、触れなかった部分もいくつかあります。例えば、ライブラリの用語説明の作り方。これは時間がかかるのでまたいつか、暇があれば...。

Script Library のインストール場所は 4 カ所ありますが、これも触れていませんでした。

  1. ~/Library/Script Libraries
  2. /Library/Script Libraries
  3. アプレット内の Resouces/Script Libraries
  4. アプリケーション内の Resouces/Script Libraries

アプレットやアプリケーション内におさめておけば、別にインストールしてもらう必要がないので便利かもしれません。また、これらの中に入れておくとライブラリはそのアプレット(アプリケーション)実行時のみライブラリが有効になります(言い換えると、他のスクリプトなどからは利用できない)。

コード署名についてですが、触れなかったことの中に『コード署名されたアプレット(アプリケーション)の実行時にはインターネットの接続が必要』というものがあります。これは、アプレット(アプリケーション)が有効なものかどうかを Apple に問い合わせるためです。なんで、触れなかったかというと検証していないからです。

接続されていないと起動時にエラーになりますので、頭の片隅にでもおいときましょう。

今回のバージョンアップにより、AppleScript Language Guide もアップデートされています。主に Script Libraries 関連情報の追加です。

script クラスのリファレンスを見てもらうと分かるように、id、name、version 属性が追加されています。

AppleScript Langage Guide と合わせて AppleScript Release Notes: 10.9 も公開されています。

こんなところかな?

まぁ、色々な不具合については触れてませんがね。

0 件のコメント :

コメントを投稿