2010年12月15日水曜日

OLWS #5 Quartz Composer に AppleScriptを。

「Apple Script」は、Mac のソフトを自在に操ることができるスクリプト言語です。
Quartz Composer は残念ながらApple Script に非対応なのですが、「System Events」経由で操作することが出来ます。

Apple Script を作成するには「Apple Script エディタ」を使います。
ハードディスク > アプリケーション > ユーティリティ にあります。

今回紹介するのはこんなスクリプトです。
「Viewer ウインドウを外部ディスプレイ(プロジェクタ)に移動して、フルスクリーン表示する」




------ここから------
tell application "Finder" -- ディスプレイサイズの取得
set dispSize to bounds of window of desktop
if ((item 1 of dispSize) is less than 0) then
set posX to ((item 1) of dispSize) + 10
else
set posX to ((item 3) of dispSize) - 600
end if
end tell

tell application "System Events"
set UI elements enabled to true -- "システム環境設定>ユニバーサルアクセス>補助装置にアクセスできるようにする"をチェックするのと同じ
tell process "Quartz Composer"
set windowNames to name of (every window)
set aName to item 1 of windowNames -- 1番手前のウインドウの名前
if "o" = (characters -2 thru -2 of aName) as text then -- "Editor window"の場合
tell application "Quartz Composer"
activate -- Quartz Compose を前面に
end tell
keystroke "v" using {command down, shift down} -- Viewer を表示
delay 1
set position of item 1 of (every window) to {posX, 0} -- ウインドウを移動
keystroke "f" using {command down} -- フルスクーン表示
end if
if "e" = (characters -2 thru -2 of aName) as text then -- "Viewer window" の場合
tell application "Quartz Composer"
activate -- Quartz Compose を前面に
end tell
set position of item 1 of (every window) to {posX, 0} -- ウインドウを移動
keystroke "f" using {command down} -- フルスクーン表示
end if
end tell
end tell

------ここまで------

※初掲載時のスクリプトは化けていたので一部修正しました。

[使い方]
1) Apple Script エディタを開いて、上記スクリプトをコピー&ペーストする


 ※この時点で実行可能です。

2) アプリケーション形式で保存する


3) Quartz Composer でファイルを開く
4) 保存したスクリプトをダブルクリックで起動

 →最前面にあるQC ファイルをフルスクリーンで表示します。

[応用]
・スクリプトメニューを有効にすると、メニューバーから実行できる。
→Apple Script エディタの「環境設定」



 メニューの「スクリプトフォルダを開く」から、「ユーザ・スクリプト・フォルダを開く」
を選び、開いたフォルダ(~/Library/Scripts/)にスクリプトを入れると、メニューに表示されます。(この場合はアプリケーション形式でない、スクリプトでも実行可)

[注意事項]
・実行時にパスワードを要求されるのは、「補助装置へのアクセス」を有効にするためです。一度有効にしていれば、以降はパスワードは不要です。

「システム環境設定 > ユニバーサルアクセス > 補助装置にアクセスできるようにする」

・ディスプレイの配置は左右(左メイン、右サブ)(左サブ、右メイン)に対応しています。
あまりいないと思いますが、上下に配置している場合は、移動先の座標を調整してください。

OK


非対応


0 件のコメント:

コメントを投稿