Доступ к окну по имени файла документа - PullRequest
1 голос
/ 21 ноября 2010

Я не слишком много программирую на appleScript, но у меня есть персональное приложение, которое в основном состоит из python, но генерирует простые applecripts и вызывает их с помощью системного вызова.Applescript настолько отличается от языков, которые я обычно программирую, в том, что я не могу понять, как я ...

получаю порядок окон документа в приложении?

Для совершения звонков like :

set bounds of **first** window to %s

Другими словами, как я могу получить «порядок окон» документа для приложения?

Можно ли взаимодействовать с окном через доступдокумент как this:

to get bounds of first window whose document is "%s"

(что не работает) или мне нужно сначала получить порядок окон документа, а затем взаимодействовать с этим окном (через его порядок) ввторая строка?

Любое понимание было бы здорово.Спасибо.

1 Ответ

2 голосов
/ 21 ноября 2010

Вы можете сделать обе эти вещи просто отлично. Первая строка - это просто set bounds of window 1 to ..., или, если вы предпочитаете, set bounds of the first window to ... Вторая строка зависит от того, что именно вы хотите сделать. Если вы хотите получить доступ к первому окну, для которого name является чем-то конкретным, вы можете просто сделать get the bounds of window "NAME"; если вы действительно хотите название документа, вам нужно сделать что-то вроде

set d to the document "NAME"
repeat with w in windows
  if w's document is d then return bounds of w
end repeat

Вы должны быть в состоянии сделать the first window whose document is d, но это не удается; насколько я могу судить, это потому, что document также является именем типа. Кроме того, если window "NAME" / document "NAME" терпит неудачу - это то, что, как я помню, иногда не работает, хотя и должно, - вместо этого вы можете использовать the first window whose name is "NAME" (или the first document ...). Но простая форма почти наверняка сработает.

Кроме того, если вы просто генерируете эти AppleScripts, вызываете их и удаляете их - другими словами, если вы притворяетесь, что они являются функциями Python, а не генерируете их для дальнейшего использования - я настоятельно рекомендую использовать appscript вместо. Я никогда не использовал в Python, но у меня есть в Ruby, и это действительно отличный способ справиться со всем, что делает AppleScript, все еще используя выбранный вами язык. Например, я думаю, что ваш первый пример станет app('Whatever').windows[1].bounds.set((0,0,0,0)), (или ...windows.first...., если вы предпочитаете), а ваш второй станет либо app('Whatever').windows['NAME'].bounds.get(), либо app('Whatever').windows[its.document.name == 'NAME'].get(), в зависимости от того, нужно ли вам имя окна или имя документа окна , Это все не проверено , но, безусловно, отражает то, как обычно выглядит приложение (красиво и кратко).

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