Я работаю над приложением, которое перемещает и изменяет размеры окон других приложений в OSX.Основное приложение написано на Какао, но часть изменения размера выполняется на AppleScript, поскольку у Какао, похоже, нет такой функции.
Вот результат регулярного вызова ActionScript (переданного как строка в NSAppleScript):
tell application "TextEdit"
set currentWindow to the window id 5184
set bounds of the currentWindow to {2855, 218, 3790, 578}
end tell
Идентификатор окна получен с использованием API CGWindowListCopyWindowInfo, представленного в OSX 10.6.
Этот подход работает нормально для большинства окон, но не работает для приложений, которые не являются приемлемымиНаиболее ярким примером является собственный предварительный просмотр OSX.
Я попытался «рассказать» о системных событиях вместо предварительного просмотра, используя варианты этого кода
tell application "System Events"
set bounds of window 5184 to {1920, -502, 2855, 578}
end tell
Однако OSX выдает мне сообщение об ошибке:
"System Events got an error: Can’t set bounds of window 5184 to {1920, -502, 2855, 578}."
То же самое происходит, когда я просто пытаюсь получить ссылку на окно:
tell application "System Events"
get window 5184
end tell
Я дважды проверил, что окно существует, и идентификатор окна правильный.
Как правильно изменить размер неподписанных окон в OSX?Я вижу, что это возможно из таких приложений, как moom .
Любой совет - будь то на основе какао или AppleScript или что-то еще - более чем приветствуется.