Как сохранить приложение активным / на переднем плане во время работы скрипта? - PullRequest
0 голосов
/ 29 марта 2011

Я использую Applescript для автоматизации развертывания приложений из Xcode 4. Я использую системные события, чтобы щелкнуть пункты меню в строке меню для этого.У меня все это работает, но с одной причудой.Если пользователь щелкает в другом месте во время работы моего скрипта, то есть окно XCode 4 выходит за передний план, весь мой скрипт завершается неудачно.Есть ли способ заставить Xcode быть на переднем плане из моего скрипта?

Теперь, если бы только Xcode 4 был по крайней мере таким же скриптовым, как Xcode 3, мне бы не пришлось прибегать к автоматизации графического интерфейса.

Ответы [ 3 ]

1 голос
/ 29 марта 2011

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

EDIT

полезная ссылка

1 голос
/ 29 марта 2011

Вы можете просто использовать команду activate для каждого вызова click, чтобы убедиться, что приложение находится на переднем плане.Это не идеально.Действительно, если вы собираетесь использовать системные события для ввода сценариев, как это, вы просто должны признать, что пользователь не может реально использовать компьютер во время выполнения сценария!

Если вы можете разбить сценарий начасти, которые требуют ввода данных пользователем, и части, которые этого не требуют, вы можете представить пользователю диалоговое окно, говорящее что-то вроде: «Готовы ли вы продолжить работу со сценарием? Вам придется ненадолго покинуть компьютер!»... а потом, когда все закончится, "не стесняйтесь использовать ваш компьютер снова сейчас!"Это может сделать скрипт немного менее навязчивым.Просто предложение.

0 голосов
/ 13 апреля 2011

Сочетание ответов Макгрейлма и Джеймса Бедфорда сработало. Я поместил в меню кнопку «Редактировать схемы…» в цикле, пока лист схемы редактирования не станет существующим. Мне также пришлось активировать приложение непосредственно перед тем, как я нажал «Запустить без сборки».

код:

tell application id "com.apple.dt.Xcode"
    activate
end tell
tell application "System Events"
    tell process "Xcode"
            repeat until sheet 1 of window 2 exists
                    click menu item "Edit Scheme…" of menu "Product" of menu bar item "Product" of menu bar 1
                    tell application "Xcode"
                            activate
                            beep
                    end tell
            end repeat
            tell sheet 1 of window 2
                    set destination to pop up button 2 of group 1
                    click destination
                    set target to "iPad 4.3 Simulator"
                    click menu item target of destination's menu 1
                    set buildConfig to pop up button 3 of group 2
                    click buildConfig
                    click menu item "Debug" of menu 1 of buildConfig
                    click button "OK"
            end tell
            tell application "Xcode"
                    activate
                    beep
            end tell
            tell application id "com.apple.dt.Xcode"
                    activate
            end tell
            click menu item "Run Without Building" of menu 1 of menu item "Perform Action" of menu "Product" of menu bar item "Product" of menu bar 1
    end tell
end tell
...