Заставьте Applescript дождаться закрытия приложения перед запуском сценария оболочки
3090
Ambush
У меня есть апплет, который я сделал, используя Applescript, который открывает приложение, а затем, после его загрузки, запускает скрипт оболочки, который выгружает Spotlight. Мне нужно сделать это, затем подождать, пока я закончу использовать соответствующее приложение, прежде чем запускать другой сценарий оболочки для повторной загрузки Spotlight.
Мой код в настоящее время выглядит так:
set appname to “Applications/Cubase 5.app” tell application appname to launch repeat until application appname is running delay 1 end repeat if application appname is running then do shell script "sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.metadata.mds.plist" password "YOUR_PASSWORD" with administrator privileges end if activate appname
Я перепробовал все, но не могу понять это. Я нашел и изменил этот скрипт с моими ограниченными знаниями, но не понимаю, как он работает
Какой код мне нужно добавить, чтобы он дождался, пока я выйду из приложения, чтобы запустить второй сценарий оболочки, который мне известен:
do shell script "sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.metadata.mds.plist" password "YOUR_PASSWORD" with administrator privileges
что бы перезагрузить Spotlight?
Я пришел с следующим, который компилируется, но не делает, как ожидалось:
set appname to “Applications/Cubase 5.app” tell application appname to launch repeat until application appname is running delay 1 end repeat if application appname is running then do shell script "sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.metadata.mds.plist" password "YOUR_PASSWORD" with administrator privileges end if activate appname repeat until application appname is not running delay 1 end repeat if application is not running then do shell script "sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.metadata.mds.plist" password "YOUR_PASSWORD" with administrator privileges end if
Выдает ошибку. Не удается запустить приложение . Я вижу, что чего-то не хватает, просто не знаю, что.
Я новичок как в Apple, так и в Applescript, и ответ будет высоко оценен.
@ Дэнни - я написал приведенный выше код с вашим предложением вставить *** не ***, но он не работает так, как ожидалось, как объяснено в моем отредактированном вопросе выше. Я надеюсь, что моя редакция поможет лучше объяснить мой вопрос. Любые предложения будут высоко ценится. С уважением
Ambush 9 лет назад
0
1 ответ на вопрос
1
Danny Schoemann
Вы хотите проверить, что не работает
set appname to “Applications/Cubase 5.app” tell application appname to launch repeat until application appname is not running delay 1 end repeat if application appname is running then do shell script "sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.metadata.mds.plist" password "YOUR_PASSWORD" with administrator privileges end if activate appname
Возможно, мой вопрос был неоднозначным. Я хочу добавить что-то в существующий скрипт, чтобы, как только я закончил использовать приложение и закрыл его, был запущен другой скрипт оболочки. По сути, я хочу запустить Cubase 5, затем выгрузить Spotlight, затем, когда я закончу работать в Cubase и выйти, снова получить прожектор загрузки скрипта. Надеюсь, что проясняется. Спасибо за ответ @ Дэнни
Ambush 9 лет назад
0
@Ambush - посмотрите внимательно - я добавил ОДНО слово в ваш существующий скрипт, и теперь он должен вести себя так, как вы объясняете. имя приложения _не_ работает
Danny Schoemann 9 лет назад
0
Я видел, что вы добавили _not_, но я не понимаю, как это заставит скрипт выполнить все 3 действия? Разве я не должен добавлять больше кода куда-нибудь?
Ambush 9 лет назад
0