AppleScript для создания окна в другом пространстве/на рабочем столе

#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. Я только что попробовал это снова, и это сработало в Биг-Суре! Спасибо за помощь!