Доступ к Cocoa и / или Carbon для автоматического запуска при загрузке на OS X (на C ++ также с использованием QT) - PullRequest
0 голосов
/ 12 августа 2010

У меня есть приложение C ++, использующее инфраструктуру QT.Я пытаюсь добавить опцию, чтобы пользователь мог настроить автоматический запуск программы при запуске.

Моя машина для разработки работает под управлением OS X 10.6.

В качестве основного справочника по MacЯ использую эту документацию Apple .Согласно документации, есть два рекомендуемых способа сделать это.Один из них - использовать API списка общих файлов Cocoa, который работает только в OS X 10.5 или выше.Другой - использовать API Carbon Apple Events, который явно не указан в документации, но, судя по моим прочтениям, он работает только на OS X 10.5 или ниже.

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

Для API списка общих файлов какао я следовал советам этого ответа , но могуКажется, я не понимаю, какие файлы включить, чтобы это работало в моем проекте.Такие вещи, как LSSharedFileListRef, не определены.Возможно ли то, что я пытаюсь сделать, даже из C ++?

Для API Carbon Apple Events я пытался использовать код, который взят из собственного собственного примера Apple .Тем не менее, включение, кажется, не определяет все вещи, которые мне нужны, как все примеры в Интернете, кажется, предлагают.Например, DescType не определен, а примеры не работают.Это потому, что я на OS X 10.6?

В целом, что я могу сделать, чтобы моя программа запускалась при загрузке, в идеале поддерживая все Mac OS X 10.4 и выше?

1 Ответ

2 голосов
/ 12 августа 2010

Если вы хотите поддерживать 10.4 и выше, вам нужно использовать Carbon Apple Events API.

Пример кода, на который вы ссылались, работал на моем OS X 10.6, работает без проблем, если вы установитебазовый SDK до 10.4u или 10.5.Есть несколько строк, которые нужно удалить, если вы хотите скомпилировать его с 10.6 SDK, но если вы хотите поддерживать 10.4 и выше, это не то, что вам нужно.запустить программу во время входа в систему, используя панель «Учетные записи» в Системных настройках.Поэтому я не думаю, что вам нужно самим устанавливать флажок.

...