2009年5月 のアーカイブ

Access the desktop picture with AppleScript

2009年5月5日 火曜日

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 を使用させていただきました。これはおそろしく便利です。この場を借りてお礼申し上げます。

Mac Fan June 2009

2009年5月1日 金曜日

先日より公開している ImageUp が、今月号(2009 年 6 月号)の『Mac Fan』に掲載されていました。特別大きく取り上げられているわけでもなく、ごくごく小さなモノクロページでの紹介でしたが、僕個人としては大満足です。詳細は Mac Fan の 139 ページをご覧いただければと思いますが、これはすべて三階ラボさんとユーザーの皆さまのおかげであり、本当に感謝のことばも尽きません。この場を借りてお礼申し上げます。

個人的なことですが、念願だった Mac を購入しておよそ半年、プログラミングなど微塵も知らなかった僕が、出版物に掲載されるようなアプリケーションを作れたというこの奇跡にとても感謝しています。これはまったく Mac という環境のなせる技であるとともに、多くの方からの支えがなければまったく不可能なことでもありました。

さて、現在 ImageUp はバグフィックスや要望のあった機能をちまちまと実装中です。それにまだもう少し考えている機能がありますので、気長に待っていただければと思います。