Applescript обнаруживает новые диски

У меня есть приложение AppleScript Studio, которое я использую для создания образов жестких дисков. Прямо сейчас он запускает сценарий оболочки (diskutil list -plist), чтобы получить информацию о дисках, подключенных к компьютеру, затем предоставляет эту информацию пользователю, и выбирается правильный диск для образа.

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

Я думал о том, чтобы запустить сценарий оболочки в цикле и сравнить результаты, чтобы определить, доступно ли новое устройство, но похоже, что это потребует много ресурсов ЦП. Есть ли способ для AppleScript прослушивать какое-то событие и обнаруживать, что доступно новое устройство?


person KevMo    schedule 18.07.2009    source источник


Ответы (1)


AppleScript (Studio) не может регистрироваться в каких-либо системных уведомлениях, уведомления можно выполнять только в Objective-C. Кстати, DiskArbitration.framework намного быстрее, чем diskutil.

Альтернативой может быть действие папки или агент запуска, который наблюдает /Volumes. Но передавать информацию в основное приложение довольно сложно.

Надеюсь это поможет

person Maksim    schedule 23.07.2009