Адрес this страница, функция LSOpenApplication
была устарела, начиная с OS X v10.10
. Предлагаемая альтернатива заключается в том, чтобы вместо этого использовать -[NSWorkSpace launchApplicationAtURL]
. К сожалению, я пишу пользовательский агент на C++, который должен запустить приложение GUI, написанное на Cocoa. Это означает, что у меня нет доступа к функциям какао (включая вышеупомянутую альтернативу).LSOpenApplication устарел?
Какую функцию я мог бы использовать, чтобы помочь мне сделать это, не отмеченное как устаревшее?
Заранее спасибо.
Могу ли я предоставить аргументы процессу, как я могу, с помощью LSOpenApplication? – Alex
Не совсем, но редко можно передавать аргументы приложениям. Во-первых, «открытие» приложения может означать повторное открытие. То есть, если он уже запущен, он будет активирован и получит событие Apple Rapp. В этом случае он не получает аргументы командной строки, поскольку они имеют смысл только при запуске. Точно так же обычно связь с графическим интерфейсом осуществляется через Apple Events. Так, например, если вы открываете документ с приложением, он не передается в качестве аргумента командной строки. Вместо этого он передается в Apple App. 'LSOpenFromURLSpec()' будет делать это для вашего с помощью itemRUL. –
Спасибо. Я попробую метод AppleEvent! – Alex