2010-09-07 4 views
2

Я открыл 2 окно & В «Finder», А впереди в то время как B внизу, следующий фрагмент приносит B на фронт верхний:AppleScript -> Активировать окно не-скриптового приложение

tell application "Finder" 
    activate 
    activate window 2 
end tell 

Но для приложений, которые не поддерживают сценарии, упомянутый код не поможет.

Любые идеи для активации окна приложения, не использующего скрипты.

ответ

4

Обычно вы можете обращаться к системным событиям в этих случаях. Системные события знают о окнах запущенных процессов, и вы обычно можете манипулировать этими окнами. Что-то вроде этого покажет вам некоторые из вещей, которые вы можете сделать. Просто поиграйте с кодом и посмотрите, сможете ли вы делать то, что хотите.

tell application "System Events" 
    tell process "Whatever" 
     properties of windows 
    end tell 
end tell 

EDIT: Одним из свойств окна является его «название». Таким образом, вы сможете использовать это. Этот подход использует тот факт, что во многих приложениях есть меню «Окно», и в этом меню много раз указывается имя окна, и вы можете переключать окна, щелкая соответствующий пункт меню. Так что-то вроде этого может работать ... мой пример использует TextEdit.

tell application "TextEdit" to activate 
tell application "System Events" 
    tell process "TextEdit" 
     set windowTitle to title of window 2 
     click menu item windowTitle of menu 1 of menu bar item "Window" of menu bar 1 
    end tell 
end tell 
+0

Спасибо regulus6633, но я не вижу разницы результатов при запуске кода для «Finder» и другого приложения соответственно. – user435657

+0

Я добавил еще один метод для своего сообщения. Может быть, это поможет. – regulus6633

+0

Возбужденный, ваш подход действительно работает, по крайней мере, в моем приложении! Большое спасибо! – user435657

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