AppleScript は様々な用途に使えるマルチなプログラミング言語ですが、今回はデスクトップピクチャにアクセスする方法を紹介したいと思います。というのも、色々と調べてみると、Mac OS X Leopard から新たに加わった「Desktop Suite」へのアクセスを用いた実例が見当たらなかったためです。
「スクリプトエディタ」の「ライブラリ」から、「System Events」を開いてみます。この中には実に多くの「Suites」が存在していますが、今回用いるのはもちろん「Desktop Suite」です。色々と書いてありますが、今回はデスクトップピクチャに指定のパスにある画像を設定、また現在の画像があるパスを取得できれば良いとします。
デスクトップピクチャを設定する
tell application "System Events" set picture of current desktop to "/Library/Desktop Pictures/Nature/Aurora.jpg" end tell
まずは上記のスクリプトを実行してみましょう。デスクトップピクチャが Leopard 標準のものになったと思います。見ていただければ分かるように、適当なパスを指定するだけでデスクトップピクチャが変更されます。簡単ですね。
デスクトップピクチャを取得する
tell application "System Events" set theFile to picture of current desktop as alias get POSIX path of theFile end tell
次のこちらを実行してみましょう。現在のデスクトップピクチャへのパスが返ってくることと思います。今設定しているデスクトップピクチャがどこにあるのか分からなくなったときに便利ですね。
それで本来ならば仕組みなどをご説明したいところですが、全然分からないので割愛します。AppleScript は予想以上に深くてよく分かりませんでした。誰か分かる方がいたら教えてください。
そもそも何故こんなものを作ったかといいますと、アプリケーションからデスクトップピクチャを操作する方法を探していて、Apple Event を送るのに割と手軽だったからです。NSAppleScript クラスをうまく使えば簡単ですね。
ということで、ImageUp にデスクトップピクチャ変更機能を組み込むなどしていますが、思ったよりも微妙な感じで残念です。デスクトップピクチャは頻繁に変更されるようには出来てないみたいですね。そりゃそうか。
余談ですが、AppleScript のシンタックスハイライトに「ザリガニが見ていた…。」さんの AppleScript を使用させていただきました。これはおそろしく便利です。この場を借りてお礼申し上げます。
タグ: AppleScript, Mac