#applescript
Вопрос:
Я пытаюсь переключаться между окнами на разных рабочих столах с помощью AppleScript. У меня есть 2 окна Chrome, открытые на 2 разных рабочих столах (рабочий стол 2 и 3). Я могу видеть свойства и индексы обоих окон, tell application "Google Chrome" to get properties of windows
но я могу поднять только одно из них на рабочем столе, на котором я нахожусь (рабочий стол 2), с помощью этого кода:
tell application "System Events" to tell process "Google Chrome"
perform action "AXRaise" of window 1
end tell
Вывод из tell application "Google Chrome" to get properties of windows
:
{{closeable:true, zoomed:true, active tab index:1, class:window, index:1, visible:true, name:"YouTube", miniaturizable:true, mode:"normal", active tab:tab id 477 of window id 476 of application "Google Chrome", id:476, miniaturized:false, resizable:true, bounds:{1280, -255, 3200, 800}, zoomable:true}, {closeable:true, zoomed:true, active tab index:1, class:window, index:2, visible:true, name:"Facebook", miniaturizable:true, mode:"normal", active tab:tab id 482 of window id 481 of application "Google Chrome", id:481, miniaturized:false, resizable:true, bounds:{1280, -255, 3200, 800}, zoomable:true}}
Есть ли способ поднять окно непосредственно в другом пространстве? Спасибо.
Ответ №1:
Я предлагаю это в качестве обходного пути, поскольку он работает в простой конфигурации с двумя обычными окнами, где на каждом рабочем столе есть одно окно, и выполняется с рабочего стола 1.
пример кода AppleScript :
tell application "Google Chrome"
set minimized of window 2 to true
set minimized of window 2 to false
end tell
Обратите внимание, что это приводит к тому, что окно с рабочего стола 2 сворачивается и восстанавливается, как на рабочем столе 1, но окно 2 находится на самом переднем плане на рабочем столе 2 без переключения пробелов.
Он был протестирован в сценарии с одним дисплеем на нескольких рабочих столах в macOS Catalina. Другие версии macOS и / или конфигурация дисплея могут давать разные результаты.
Комментарии:
1. Спасибо. Он работает на Биг-Суре, но он должен был бы работать и на рабочем столе 2 и 3 (просто отредактировал вопрос). Это интересный обходной путь, который может быть полезен в других ситуациях.
2. @llo, Только что протестированный в сценарии с тремя рабочими столами под macOS Catalina с использованием 2 и 3 и запуском кода из 2 , он работает на 3 , как и в моем первоначальном ответе. Вы хотите сказать, что это не работает в macOS Big Sur ?
3. Я только что попробовал это снова, и это сработало в Биг-Суре! Спасибо за помощь!