Як зосередити конкретне вікно з яблучним сценарієм, не роблячи активацію та не приводячи інші вікна на передню частину?


18

Я шукаю метод w / AppleScript для вибору / фокусування конкретного вікна програми, фактично не роблячи "активувати", який приводить усі вікна на передню частину .

Ось що я маю досі:

tell application "Google Chrome"
    set windowTitle to title of first window whose title contains "whatever"
end tell
tell application "System Events" to tell process "Google Chrome"
    click menu item windowTitle of menu 1 of menu bar item "Window" of menu bar 1
end tell
tell application "Google Chrome" to activate    

Проблема полягає в "активації" в останньому рядку. Це виводить все на передню частину, але я просто хочу одне вікно.

Відповіді:


15

Ти маєш рацію, що activateкоманда піднімає всі вікна. Команда openоболонки піднімає лише одне вікно, хоча:

tell application "Google Chrome" to set index of window 1 where title contains "whatever" to 1
delay 0.05
do shell script "open -a Google\\ Chrome"

Ах, це чудово. На жаль, вона наближається, якщо Chrome вже зосереджений, вікно "що завгодно" блимає лише спереду, і вікно, що фокусується на даний момент, виграє. Якщо я використовую техніку "пункт меню клацання" під w / the open -a, це, здається, працює, але це вимагає доступності. Будь-які ідеї, щоб обійти це?
Аарон Дженсен

1
Просто додавання "затримки 0,05" між двома рядками, здається, працює ідеально. Знову дякую!
Аарон Дженсен

Я не міг її відтворити, але ви також можете спробувати tell application "System Events" to tell process "Google Chrome" to perform action "AXRaise" of window 1.
Лрі

3
Я отримую:execution error: The variable title is not defined. (-2753)
повторний

3
Re: помилка виконання. Змінити titleна name.
воган
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.