Есть ли способ получить постоянный идентификатор для любого данного окна - PullRequest
0 голосов
/ 04 июня 2011

Я пытаюсь написать скрипт, который может управлять различными окнами из разных программ (установить положение и размер).У меня есть вещи только о работе, но у меня проблемы с точным определением окон.Прямо сейчас у меня есть:

tell application "System Events"
    tell application "Mail"
        set windowName to name of window 1
    end tell
end tell

Это довольно упрощенная версия того, что я сейчас работаю.Я собираю информацию об окне для многих различных приложений и сохраняю их как свойства, которые позже вызываются другим скриптом:

tell application "System Events"
    tell application "Mail"
        set position of window windowName to valueX
    end tell
end tell

Это работает до тех пор, пока имя окна не изменится.Во многих других приложениях у меня нет проблем, потому что заголовки окон не меняются (iCal, iChat и т. Д.).В Почте заголовок окна изменяется в зависимости от того, сколько сообщений электронной почты находится в вашем почтовом ящике.Если электронное письмо находится между первой частью сценария и последней, то сценарий завершается неудачей.

Я не могу действительно ссылаться на окно по его номеру индекса, потому что они меняются в порядке расположения оконизменить (спереди назад).Я подумал, что, возможно, идентификатор окна будет работать, но мне нужно, чтобы мой сценарий работал, даже если приложение было завершено и перезапущено, а идентификатор изменился, если приложение было перезапущено.Я СОЛ, или есть что-то, о чем я не думал?

1 Ответ

0 голосов
/ 04 июня 2011

Не SOL, но вам придется сделать немного больше работы.Есть только несколько типов окон.У вас есть главное окно браузера, и у вас есть сообщения электронной почты, будь то черновик, который они составляют, или сообщение электронной почты, которое они читают.Может быть, вы также заинтересованы в окне настроек.Таким образом, вы должны хранить тип окна.Если это браузер, то вам также нужно будет сохранить текущее выбранное сообщение.Если это окно электронной почты, то вы также сохраняете идентификатор сообщения.Для браузеров вы просто открываете новое окно браузера и восстанавливаете выбор.Для сообщений электронной почты вы просто открываете сообщения.Вам придется проверить словарь Mail для других типов окон, но идея будет та же.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...