QuickTimeでムービーを起動するときは、常に2番目のディスプレイ(デフォルトのプライマリディスプレイではない)で開くようにします。私は実際にiTunesからAppleScriptを介して映画を開いているので、applescriptソリューションで問題ありません。
Quicktimeには、デフォルトで特定のディスプレイに設定できる設定がありましたが、QuickTimeXでは失われたようです。
さて、先に進んで、2番目の画面の中央に配置されたウィンドウの境界をキャプチャし、AppleScriptに行を追加して、毎回新しいウィンドウをそこにプッシュしました。
tell application "iTunes"
set sel to item 1 of selection
set loc to (get location of sel)
end tell
tell application "QuickTime Player"
open loc
activate
set bounds of front window to {2460, 256, 3299, 736}
present front document
play front document
end tell
これで、iTunesから必要な映画を選択してスクリプトを実行すると、QuickTimeによって2番目のモニターに全画面で開き、再生が開始されます。私が望むよりもさらにハッキングされていますが、今のところはそうなると思います。
http://forums.macosxhints.com/showthread.php?t=59812 すべてのアプリケーションのウィンドウを2番目のモニターに送信するコードが含まれています。 Quicktime Playerでコードを実行するか、関連する2番目のモニターの場所のロジックを抽出して単一のウィンドウで実行することができます。
後世のために、ここにミラーリングされたコード:
tell application "System Events"
-- set visible of process "Untitled" to false -- don't use name extension
-- delay 1
set Name_App to item 1 of (get name of processes whose frontmost is true)
end tell
-- broken
--tell (do Shell script "defaults read /Library/Preferences/com.Apple.windowserver | grep -w Width") to set {monitor1_width, monitor2_width} to {Word 3 as number, Word 6 as number}
-- fixed by:
set {monitor1_width, monitor2_width} to {1280, 1024}
--tell (do Shell script "defaults read /Library/Preferences/com.Apple.windowserver | grep -w Height") to set {monitor1_height, monitor2_height} to {Word 3 as number, Word 6 as number}
tell application Name_App
try
set {x, y, xx, yy} to bounds of front window
set The_Scriptable to true
on error
set The_result to my get_position(Name_App)
if The_result is {} then return
set {x, y} to The_result
set The_Scriptable to false
end try
if The_Scriptable then
if x <= monitor1_width and xx >= monitor1_width then -- the window is in the first monitor
if xx > monitor2_width then set xx to monitor2_width
set New_bounds to {monitor1_width + x, y, monitor1_width + xx, yy}
else if x >= monitor1_width then -- the window is in the second monitor
if xx - x > monitor1_width then
set xx to monitor1_width
else
set xx to xx - x
end if
set New_bounds to {x - monitor1_width, y, xx, yy}
else
--the window is between the monitors
end if
set bounds of front window to New_bounds
else
if x <= monitor1_width then -- the window is in the first monitor
set new_Position to {monitor1_width + x, y}
else -- the window is in the second monitor
set new_Position to {x - monitor1_width, y}
end if
tell application "System Events" to tell process Name_App to set position of front window to new_Position
end if
tell front window to "Zoom"
end tell
on get_position(This_App)
try
tell application "System Events" to tell process This_App
return position of front window
end tell
on error
return {}
end try
end get_position
デュアルモニターセットアップを実行していたときは、接続していなくても、セカンドモニターにあったものを覚えていたのはわかっています。ウィンドウをそのディスプレイにドラッグすると、そこに配置することを忘れないようにトレーニングできる場合があります。
どうやら、10.6で出荷されたQTXは完全ではありません。 SLインストールディスクから古いバージョンのQTを再インストールするには、オプションのインストールが必要です。 QTXではデフォルトのフルスクリーンモニターを設定できるようには見えません。