2010-11-21 2 views
1

Я не занимаюсь программированием в applescript, но у меня есть личное приложение, которое в основном представляет собой python, но генерирует простые applescripts и вызывает их через системный вызов. Applescript настолько отличается от языков, которые я обычно программирую, потому что я не могу понять, как я ...Окно доступа по имени файла документа

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

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

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

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

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

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

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

Любое понимание было бы замечательным. Благодарю.

ответ

2

Вы можете делать обе эти вещи просто отлично. Первая строка - это только set bounds of window 1 to ..., или, если хотите, set bounds of the first window to .... Второй зависит от того, что именно вы хотите сделать. Если вы хотите получить доступ к первому окну, имя - это что-то в частности, вы можете просто сделать 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)) (или , если вы предпочитаете), и ваш второй станет либо app('Whatever').windows['NAME'].bounds.get(), либо app('Whatever').windows[its.document.name == 'NAME'].get(), в зависимости от того, вам нужно имя окна или имя документа окна. Это все непроверено, но, безусловно, отражает вкус того, как выглядит приложение (красивый и лаконичный).

Смежные вопросы