本ブログの更新は停止しています。更新は新しいサイトの Travellers Tales で行なっています。

デフォルトのブラウザを調べる方法


デフォルトのブラウザは、Safari の環境設定で変更しないといけないわけですが、この情報は、ユーザのライブラリ/Preferences の中の com.apple.LaunchServices.plist に保存されています。それを AppleScript でどう処理すればいいのでしょうか。

英語ですが、AppleScript - Open at URL in a (default) browser window and take focus に情報がありました。

それによると、以下のような感じです。
set defaultBrowser to word -1 of ¬
(do shell script "defaults read com.apple.LaunchServices | grep -C5
E:html | grep -w LSBundleSignature")
set {text:defaultBrowser} to (text of defaultBrowser) as text
tell application "Finder" to set the defaultBrowser to the name of
application file id defaultBrowser as text

ターミナルで defaults read com.apple.LaunchServices を打つとわかりますが、各プロトコルに対応するアプリケーションについては、以下のような2箇所からデータを得られそうです。

LSBundleIdentifier = "com.apple.safari";
LSBundleSignature = sfri;

後者はアプリケーションのクリエータになりますね。上に挙げたサンプルコードでは後者を使ってアプリケーションを特定しています。

しかし、前者の LSBundleIdentifier からもアプリケーションは特定できます。Stuffitの存在確認.scpt にスクリプト例が載っていましたが、Finder に対して、application file id sfri、となるところを、application file id "com.apple.safari" としてもだいじょうぶです。

CotEditor 用 a href タグ生成スクリプトでは、LSBundleIdentifier を使ってデフォルトブラウザを判別しています。

ただし、この方法では一度も起動したことのないアプリケーションに関しては、Finder が情報をもっていないらしく、エラーが出てしまいました。クリエータコードを使っても同じかもしれません。もっとも、デフォルトのアプリケーションを一度も起動していないことは普通あり得ないでしょうから、あまり気にしなくてよいと思います。

以上のような方法を使えば、デフォルトのブラウザに限らず、メーラやその他各プロトコルに対応したアプリケーションは何か調べることができます。

でも、シェルのコマンドでも、AppleScript でもいいから、もっと簡単にデフォルトアプリケーションを調べられるといいんですけどねー。

Posted: 土 - 4月 9, 2005 at 01:30 AM               Hatena Bookmark



©