Я пытаюсь создать AppleScript, который будет синхронизировать и извлекать мой iPod без необходимости ввода данных после запуска сценария.Базовый сценарий:
set ipodList to {}
tell application "iTunes"
try
set ipodList to (name of every source whose kind is iPod)
end try
repeat with ipodName in ipodList
update ipodName
eject ipodName
end repeat
end tell
Проблема этого сценария в том, что он заставляет iTunes немедленно попытаться извлечь iPod после начала синхронизации, поэтому синхронизация еще не закончена.Это вызывает иногда одно, а иногда два диалоговых окна.В одном окне говорится, что «iTunes синхронизирует iPod. Вы уверены, что хотите извлечь его?»и имеет две кнопки «Отмена» и «Извлечь».В другом окне говорится: «iPod nanoBot не может быть извлечен, поскольку он содержит файлы, которые используются другим приложением».и имеет только кнопку «ОК».Просто нажав «Извлечь» и «ОК», iTunes завершит синхронизацию iPod, а затем извлечет его.
Я хотел бы использовать сценарии пользовательского интерфейса, чтобы нажать эти две кнопки, чтобы iTunes делала то, что я хочу,На самом деле, следующий скрипт, кажется, делает то, что я хочу:
tell application "System Events"
tell process "iTunes"
try
click button "Eject" of window 1
end try
try
click button "OK" of window 1
end try
end tell
end tell
Однако я протестировал второй бит кода, запустив его из второго AppleScript.Первое выполнение AppleScript зависает в команде eject до тех пор, пока я не нажму на два диалоговых окна (если бы оно зависало в команде update, все это раздражение было бы решено ...).
Есть ли способ щелкнуть по диалоговым окнам в том же сценарии, что и команда eject?Или какой-то способ запустить второй Applescript из первого и заставить его постоянно проверять, чтобы эти диалоговые окна появлялись, а затем щелкали по ним?Или есть просто более простое решение этой проблемы?
[Редактировать: я должен добавить, что сейчас я просто синхронизирую iPod с командой обновления, делаю паузу на несколько секунд, а затем извлекаю iPod сFinder (у меня он настроен как дисковод).Проблема этого метода заключается в том, что невозможно определить, когда синхронизация завершена, а если нет, сценарий не извлекает iPod и выдает ошибку.]