Реализация нетривиально Поддержка событий Apple - это правильная PITA;так что если вам нужно реализовать его с нуля в C / C ++ (CocoaScripting.framework не является началом для приложений, не относящихся к Cocoa, и любые сторонние фреймворки будут в значительной степени устаревшими).Прямо сейчас я бы даже не попробовал: AppleScript умирает, а JXA уже мертва, и Apple ничего не говорит о своих планах (если таковые имеются) на будущее Mac Automation.Это может измениться, если / когда ярлыки появятся в macOS, но этого не произойдет до 10.15.
Если вы просто хотите добавить действительно базовую поддержку автоматизации (т. Е. Нет «объектной модели»,просто простые команды, такие как play FILE
/ convert FILE
), и приложение прекрасно работает с циклом событий macOS, не очень сложно (хотя и крайне утомительно) установить обработчики событий Apple, распаковать и упаковать простые аргументы и результаты (числа, строкичерез старый C Apple Event Manager API.Это не будет очень "AppleScript-иш", но по крайней мере это достижимо.Или, если приложение уже имеет свою собственную встроенную (например, JavaScript) поддержку сценариев, реализация обработчика do script CODE [with parameters {ARG1,ARG2,…}]
для вызова этого является легкой победой.
Что касается документации и примера кода, выполните поискдля AEInstallEventHandler
и посмотрим, что произойдет.Не будет здорово, но это так же хорошо, как и получается.Будьте готовы выяснить многое из этого для себя.