実行中のすべてのアプリケーションのすべてのウィンドウのサイズを選択できるようにするapplescriptスクリプトを作成しようとしています(現在はStayを使用していますが、グリッチが発生することがあるので、「再発明」したいと思います)
。いくつかのアップルスクリプトのチュートリアルに従っていて、そうするために次のコードを考え出しましたが、それはバグがあります:
tell application "Finder"
set rect to bounds of window of desktop
end tell
property excludedApplicationNames : {"Finder"}
tell application "System Events"
say "a"
repeat with theProcess in processes
say "b"
if background only of theProcess is false then
say "c"
set theProcessName to name of theProcess as string
if theProcessName is not in excludedApplicationNames then
say theProcessName
tell application theProcess
set bounds of windows of process theProcess to rect
end tell
end if
end if
end repeat
end tell
say "done"
問題は、このコードが私の唯一のターミナルウィンドウ(いくつかの開いているタブがある)に遭遇すると、エラーになることです:System Events got an error: Can’t set application (item 2 of every process) to {0, 0, 1280, 900}.System Events got an error: Can’t set application (item 2 of every process) to {0, 0, 1280, 900}.
に変更tell application theProcess
してtell application theProcessName
も効果はありません(同じエラー)。また、に変更してもtell application "System Events"
(エラーSystem Events got an error: Can’t make item 2 of every process into type integer.
:)
興味深いことに、これは期待どおりに機能します。
tell application "Finder"
set rect to bounds of window of desktop
end tell
tell application "Terminal"
repeat with theWindow in windows
set bounds of theWindow to rect
end repeat
end tell
だから私はとても混乱しています。
私は何が間違っているのですか?どうすればこれを修正できますか?