マルチモニター設定でウィンドウをレイアウトするために使用するスクリプトがあります。Mavericks にアップグレードした後、次のエラーが表示されます。
Organize Windows is not allowed assistive access.
Apple サポートを調べたところ、http ://support.apple.com/kb/HT5914 を見つけました。 そこに記載されている手順に従いました。アプレットに署名しましたが、あまり成功しませんでした。エラーはまだ発生します。
まず、2 番目のプロンプトは、スクリプトがアプリケーションとしてエクスポートされ、/Applications に配置された場合にのみ発生します。たとえば、スクリプトをドキュメント (アプリのようにバンドルされている) に配置すると、ポップアップしません。
すべてのアプレットが表示されると、システム環境設定で「アプレット」として表示されます (識別子があるため、これは奇妙です)。
この種のスクリプトの実行に成功した人はいますか? セキュリティチェックをグローバルに無効にする方法はありますか? (ないと思いますが、聞いてみる価値はあります)
以下はスクリプトです。いくつかのアプリを起動して画面に配置するだけです。
#Query desktop area
tell application "Finder"
set displayAreaDimensions to bounds of window of desktop
set widthOfDisplayArea to item 3 of displayAreaDimensions
set heightOfDisplayArea to item 4 of displayAreaDimensions
end tell
tell application "System Events" to tell process "Dock"
set dockPosition to position in list 1
set dockDimensions to size in list 1
set heightOfDock to item 2 of dockDimensions
set positionOfDock to item 2 of dockPosition
end tell
# Space between windows
set padding to 7
# This assumes that the Apple Cinema Display 27" is to the right
# of the Macbook Pro
set idea_w to 1600
set idea_h to 1440
set idea_base_x to 1680
set iterm_w to 2560 - idea_w - padding
set iterm_h to 1000
set iterm_base_x to idea_base_x + idea_w + padding
#If we're in a single monitor configuration
if widthOfDisplayArea is 1680 and heightOfDisplayArea is 1050 then
# Override sizes
set idea_base_x to 0
set iterm_base_x to 0
set idea_w to widthOfDisplayArea
set idea_h to (heightOfDisplayArea - heightOfDock)
set iterm_w to 1024
set iterm_h to (heightOfDisplayArea - heightOfDock)
end if
checkRunning("IntelliJ IDEA 11", 10)
checkRunning("iTerm", 0)
placeWindow("IntelliJ IDEA", idea_base_x, 0, idea_w, idea_h)
placeWindow("iTerm", iterm_base_x, 0, iterm_w, iterm_h)
#Helper to launch as necessary
on checkRunning(theName, theDelay)
if application theName is not running then
tell application theName to activate
delay theDelay
end if
end checkRunning
on placeWindow(theProcess, x, y, w, h)
tell application "System Events" to tell process theProcess
set allWindows to (every window)
repeat with aWindow in allWindows
set position of aWindow to {x, y}
set size of aWindow to {w, h}
end repeat
end tell
end placeWindow