Сделать окно другого приложения передним и сфокусированным - PullRequest
2 голосов
/ 14 сентября 2010

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

Вот два метода, которые я попробовал:

AppleScript

tell application "Safari"
   set index of window "Downloads" to 1
   activate
end tell

Почему это не работает: Хотя кажется, что он меняет z-порядок, он не меняет фокус!Предыдущее переднее окно, даже если оно скрыто, сохраняет фокус.

CoreGraphicServices

CGSWindowOrder(cid, wid, kCGSOrderAbove, nil)

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

Резюме

Мне нужно сделать окнопередний и сосредоточен от одного процесса к другому.AppleScript не может сфокусироваться, и CGS не вариант, так как у меня нет окна.

Какие-либо решения / идеи?

1 Ответ

1 голос
/ 14 сентября 2010

Попробуйте использовать API доступа, чтобы отправить действие AXPress в AXWindow. Очевидно, что пользователь должен иметь доступ к вспомогательным устройствам.

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