本ブログの更新は停止しています。更新は新しいサイトの Travellers Tales で行なっています。
月 - 2月 13, 2006AppleScript Studio での Universal Binary 化拙作の PingTrackback
という AppleScript Studio
で作ったトラックバック送信用のツールがあるのですが、これをユニバーサルバイナリ化しようと思ったら、ちょっとつまづいたので、やり方をメモっておきます。
一般的には Xcode
で作ったプロジェクトは、「ビルド対象アーキテクチャ」のところで、
□ PowerPC □ Intel の両方にチェックするだけで、Universal Binary になると、Apple は簡単に説明しています。(もちろんコードの書き方によっては、うまくいかない場合も多いのですが) AppleScript Studio で作ったソフトウェアはどうなんだろう?と思って、PingTrackback でやってみたところ、「Intel」にチェックを入れただけではユニバーサルになりませんでした。 で、検索してみると、Apple の開発者用メーリングリストのログに答えを発見。以前の Xcode プロジェクトから引き継いでいるプロジェクトに関しては、「Intel」にチェックを入れるだけでなく、ターゲットをアップグレードする必要もあることがわかりました。文字で書いてもわかりづらいので、以下にスクリーンショット付きで、手順を紹介してみます。 1) SDK の確認 基本中の基本ですが、SDK が Universal であることを確認します。 2) ビルド対象アーキテクチャで Intel にチェックを入れる WWDC なんかでは、これだけであなたのアプリケーションは Universal になっちゃうんだよ!みたいな宣伝がされていますね。;-) 3) ターゲットのアップグレード 今回必要だったのが、この手順。 この後にビルドしたら、ビルド時に何やら警告はいっぱいでたけど、ビルドしたアプリケーデョンは「情報を見る」で、(Universal) と表示されるようになりました。 # とはいうものの、ビルドしてみただけで、ちっとも機能改善・追加のほうは手つかずなのですが‥‥。 以上、ここでは AppleScript Studio のプロジェクトの例として取り上げましたが、普通の Cocoa アプリケーションでも同じなんじゃないかな (試してないけど)。 Posted at 01:15 AM Permalink 木 - 2月 2, 2006Mail.app で送信済みメールにルールを適用するMail.app
のルールは、受信するメールにしか適用されません。しかし、送信メールにもルールを適用して、メールを整理したいことは多いと思います。
実は自動でなければ、送信済みメッセージにもルールを適用する方法はあります。Mail.app の「メッセージ」メニューに「ルールを適用」という項目があります。これを選ぶと、そのとき選択しているメッセージに対してルールを適用してくれます。 ということは、送信済みメールボックスの中のメッセージをすべて選択して、「ルールを適用」すればいいのですが、これを毎回やるのは面倒くさいので、とりあえず AppleScript を使って、一連の動作を1回でできるようにしたのが "ApplyRules.scpt" です。 GUI Scripting
を使っていますので、「システム環境設定」の「ユニバーサルアクセス」において「補助装置にアクセスできるようにする」をオンにしておく必要があります。
また、標準のキーボードショートカットを前提にしているので、キーボードショートカットをカスタマイズしている場合は動きません。 やっていることは以下の一連の動作です。これに含まれるキーボードショートカットをカスタマイズしていなければ問題ありません。
送信済みメッセージ用のルールの設定には、ちょっと注意が必要です。下手に設定すると、普通にメールを受信したときにも適用されてしまうからです。 以下の画像は、メーリングリスト (Yahoo! Groups) 宛に送ったメールをゴミ箱に移動するルールの設定例です。メーリングリスト宛に送ったメールは自分にも配信されてくるため、送信済みのメッセージは重複してしまい無駄です。 ここで、条件を To yahoogroups.jp で終わる だけにしてしまうと、受信するメッセージもゴミ箱に移動してしまいます。そこで、 Received from を含まない という条件を追加しています。「以下のすべての条件に一致した場合」に変更しておくのを忘れないで下さい。 Received は標準ではルールの条件に含まれていないので「ヘッダリストを編集…」で、Received を追加する必要があります。送信済みメールボックスにあるメールには、この Received は付いていないので、それによって受信メールと送信メールを区別しています。Received を使わなくても他の指定のしかたも工夫次第でできます。 上の設定例では、実際にルールが適用されたメッセージを区別するために、ゴミ箱に移動するだけでなく、メッセージに色を付けるように設定しています。 なお、スクリプトを実行してもうまくルールが働かない場合は、お使いのマシンの実行速度のために、スクリプトの実行のタイミングが合っていない可能性があります。その場合は、スクリプトを開いて、冒頭に書いてある property sec : 3 の 3 を少し増やしてみて下さい。単位は秒です。 ここで配布している "ApplyRules.scpt" はスクリプトメニューにインストールされるようになっていますが、いちいちスクリプトメニューから実行するのは面倒だという方もいるでしょう。 その場合は、Butler はものすごく便利!に書いたように、スクリプトにショートカットを割り当てるのも手です。 また、常に Mail.app を起動しているなら、1日1回とかの頻度でスクリプトを自動的に実行する方法もあります。"AppleRules.scpt" をアプリケーション形式で保存し直して、cron で実行させます。cron の設定ファイルを直接いじるのは未経験の人にはちょっと難しいかもしれませんから、CronniX のような cron 設定ユーティリティを使うとよいでしょう。 Posted at 01:58 AM Permalink AppleScript の日本語表示の文字化け解消法これはきっと OS X の
AppleScript
のバグなんだろうけど、display
dialog
なんかで日本語のメッセージを表示させようとすると、文字化けしてしまいます。
"Title+URI+Text.scpt" 用に AppleScript で日本語のインストーラを作ったのですが、確かこの文字化けを回避する方法があったよなーと思って検索したら、やっぱりありました。 AppleScript
for OS X -
日本語の文字化け
スクリプトを保存するときに「アプリケーションバンドル」にして、アプリケーションのパッケージの中の info.plist を編集すればよいのです。 「<string>English</string>」を「<string>Japanese</string>」 にすればよいです。 Posted at 01:22 AM Permalink 水 - 2月 1, 2006Safari で URL とタイトルをクリップボードにコピーSafari
で表示しているウェブページの
URL
とタイトル、および選択テキストをクリップボードにコピーする
AppleScript "Title+URI+Text.scpt"
をアップデートしました。
自分で言うのもなんですが、これめちゃ便利ですよ。自作したものでは一番使用頻度高いかも。Butler と組み合わせて使うと、やめられません。 Firefox では似たような機能拡張として、Copy URL+ というのがあります。 今回の変更点は、以下の通りです。
スクリプトメニューから選択して使うのが、オーソドックスな使い方ですが、工夫次第でその他の呼び出し方もできます。 コンテキストメニューから呼び出す場合は、Miko さんちのホームページにある AmScriptsCMX を使うとよいでしょう。 # ところで、Contextual Menu の日本語表記は、「コンテキストメニュー」と「コンテクストメニュー」のどちらが正しいのでしょう?アップルのサイトには両方の表記があるみたいですが。(統一しきれてない?) キーボードショートカットで呼び出す方法もあります。私がいちばんお勧めする方法です。AppleScript 等にキーボードショートカットを割り当てるユーティリティはいくつかあるのですが、いろいろ使ってみて、私は Butler がいちばんだと思います。別記事にて Butler を使った方法を説明します。 Posted at 12:43 AM Permalink 火 - 4月 19, 2005Safari 関連 AppleScript を 10.3.9 対応にアップデートOS 10.3.9 でバージョン 1.3
になった Safari
ですが、変更が大きく、影響を受けるツールが多いようです。当方で公開しているスクリプトも、選択テキストを取得できなくなっていたので、なんとか解決してみました。
Safari 1.3 で外部からの JavaScript
呼び出しに対する脆弱性に対処したそうで、これまで
AppleScript 中で window.getSelection
を呼び出すことででできた選択テキストの取得ができなくなっています。
回避策を考えたのですがうまい方法がなく、多少強引な手法ですが、選択テキストを含む小さなウインドウを表示させ、そのウインドウのテキスト全体を AppleScript で取得させてみました。 アップデートしたものは以下で公開しています。 Software: Script Menu Items 今回アップデートしたスクリプトは3つです (バージョン 1.2)。
OS 10.3.9 にアップデートしていない場合は差し替える必要はありませんが、新しいスクリプトは 10.3.8 以前でも問題なく動作します。10.3.8 以前を使った場合は、window.getSelection が普通に使えるので、テキスト取得用の小さなウインドウ表示することはありません (バージョン 1.1 と同じ動作)。 今回のスクリプトは 10.3.9 上では強引なことをしているので、環境によっては動かないかもしれません。その場合は、不具合報告をよろしくお願いいたします。 追記: なお、当サイト配布のスクリプトに関係ありませんが、OS 10.3.9 アップデートで Safari で不具合が出ている場合は、以下を試してみて下さい。
Posted at 03:15 AM Permalink 土 - 4月 9, 2005デフォルトのブラウザを調べる方法デフォルトのブラウザは、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 at 01:30 AM Permalink CotEditor 用 a href タグ生成スクリプトCotEditor
に付属している XHTML
用スクリプトになぜか存在していない、ハイパーリンクのタグを生成するスクリプトを作ってみました。
href 属性にいれる URI
の取得のしかたは以下の3通り。
技術情報; 相対リンクの取得のしかたは、CotEditor 用 img タグ生成スクリプトと同じです。 ブラウザから表示しているページのタイトルや URI を取得する部分は、Safari、Firefox、Internet Explorer に対応しています。 Firefox からのデータ取得方法は、kaoru_ari さんの「Firefox 版アンカータグを作成する AppleScript 」を参考にしました。 IE については、Internet Explorer AppleScript リファレンスが参考になるでしょう。しかし、IE の AppleScript 用語はどうやって調べたんだろう? ダウンロード先:AppleScript for CotEditor Posted at 12:53 AM Permalink 金 - 4月 1, 2005CotEditor 用 img タグ生成スクリプト画像ファイルの縦横のサイズを取得して、height
と width
属性に入れたタグを生成するスクリプトです。
AppleScript for CotEditor
からダウンロードして下さい。(今回から
CotEditor
用スクリプトの専用ページを設けました。)
CotEditor に付属している XHTML 用の <img> スクリプトの代替品としてご利用ください。 技術的なこと 画像の縦横を取得するために Image Events を使っています。今回のスクリプトでは使っていない機能ですが、Image Events を使うと、サイズを取得するだけでなく、画像の変換・加工などいろいろなことが可能です。 参考サイト: AppleScript で画像を? Image Events を使う! - [Mac OSの使い方]All About Posted at 02:05 AM Permalink 土 - 3月 26, 2005CotEditor 用スクリプトアップデート先日公開した、HTML
用の外部ファイルを取り込むスクリプトをアップデートし、新たに選択部分のファイル名のファイルを
CotEditor
で開くスクリプトを公開しました。
CotEditor
Include
同梱の2つのファイルのうち、Paste Include Tag.applescript の方だけの更新です。 変更点としては、
タグの閉じ忘れ、書き間違い等は、現段階ではチェックしていませんので、ミスがないように注意して下さい。 CotEditor Open Selection テキスト上で選択したファイル名のファイルを、CotEditor で開きます。(スクリプトを開いていじれば、CotEditor ではなく、デフォルトのアプリケーションで開くようにも改造できます。いずれ別途公開しますが。) 例えば HTML の中に以下のような箇所があったとします。 <link rel="stylesheet" href="../../styles-site.css" type="text/css" /> このスタイルシート、styles-site.css を編集したくなったら、通常は Finder で該当のある場所を開いてファイルを見つけなければいけません。しかし、このスクリプトがあれば、ファイルの場所が書かれた部分 ../../styles-site.css
を選択して、メニューからスクリプトを実行すれば、styles-site.css
が CotEditor
によって開かれます。実はこの機能も PageSpinner にある機能なんですけどね。 Software: Script Menu Items - For CotEditor からダウンロードして下さい。 Posted at 01:04 AM Permalink 火 - 3月 22, 2005Script Menu 用の AppleScript をアップデート今まで公開した Safari や
iBlog で使う AppleScript
をアップデートしました。
今回の変更点としては、以下の通りです。
これまでは Safari で選択したテキストを取得するのに、URI Script によってテキストをコピーするユーザの動作をシミュレートしていたのですが、その方法だと不確定要素が多く、スクリプトがうまく働かないことがありました。今回から、AppleScript 経由で Safari の JavaScript を呼び出すことでテキストを取得しているので、安定して動作するようになりました。 ついでに、今まで公開したものを整理して、公開している AppleScript をまとめたページを作りました。詳しくは下記リンク先を見て下さい。 Software: Script Menu Items Posted at 03:12 AM Permalink |
Quick Links
Categories
Google Search
Donation
Track Word
Ranking Navi
track feed
Archives
About This Blog
親サイトの Travellers Inn は旅に関するサイトですが、ここ Travellers Tale では、旅にこだわらず興味のおもむいたことについて書いています。ちなみに Travellers Tale という言葉は、旅行記ではなく、旅人の見てきたようなほら話のことを意味しています。
筆者ハンドル:Hiro (ハンドルネームという言い方は正確には間違いですよ!慣用化しているので、こだわる必要はないかもしれませんが。) Trackback powered by
FeedCount
XML/RSS Feed
Statistics
Total entries in this blog:
Total entries in this category: Published On: 6月 10, 2012 12:55 AM |