ログインしてさらにmixiを楽しもう

コメントを投稿して情報交換!
更新通知を受け取って、最新情報をゲット!

AppleScriptコミュの辞書(Dictionary.app)をひく

  • mixiチェック
  • このエントリーをはてなブックマークに追加
辞書アプリ絡みで見つけたことについて書きます。
SafariでこのURLを開くと、辞書アプリが単語をひいてくれます:

dict://xxx
(xxxはひきたい単語)

こういうのを、独自スキーマというんですねえ。
そこでAppleScriptから辞書をひいてみます。

open location "dict://hello"

しかし全角文字だとダメ。URLエンコードの問題でしょうか。試行錯誤の末、

tell application "Safari" to open location "dict://こんにちは"

Safariにお願いすれば全角文字も通ることがわかりました。
ちなみに、StandardAdditionsで定義されているURLクラスは、schemeというプロパティを持っていますが、dict:を扱うことはできないようです。

"http://www.apple.com/" as URL →OK
"dict://apple" as URL →エラー

さて、ここまでくると辞書をひいた結果をスクリプト内で取得したくなります。Dictionary.appはスクリプタブルではないので、System Eventsにお願いしてapplication process "Dictionary"を掘り進んでいったのですが、どこかで迷子になってしまったのか、辞書内容にたどり着けませんでした。残念。

単語のリストを辞書でいっせいにひけたらいいなあと夢見ています。
辞書絡みの情報がございましたら、お願いします。

コメント(2)

たどり着きました。私の環境では、“すべての辞書”を選択しておくとうまくいくようです。個々の辞書を選択すると、なぜか別の辞書の内容を拾ってしまいます。

----------
tell application "System Events"
tell application process "Dictionary"
set wordList to value of static text of groups of UI element 1 of scroll area 1 of scroll area 1 of groups of UI element 1 of scroll area 1 of splitter group 1 of window 1
end tell
end tell

set currentDelimiter to AppleScript's text item delimiters
set AppleScript's text item delimiters to {" "}
set wordList to wordList as text
set AppleScript's text item delimiters to currentDelimiter

wordList
-------------
へー。辞書は使いがいがあるツールなんで、調べてみようかなぁ。

ログインすると、みんなのコメントがもっと見れるよ

mixiユーザー
ログインしてコメントしよう!

AppleScript 更新情報

AppleScriptのメンバーはこんなコミュニティにも参加しています

星印の数は、共通して参加しているメンバーが多いほど増えます。

人気コミュニティランキング