2009-12-18 2 views
0

Мне интересно, можно ли использовать Scripting Bridge (см. Обсуждение here) в C. Что я пытаюсь сделать, это управлять и/или получать информацию из приложений Apple (таких как iTunes , см. ссылку на листинг 2.1 & 2.2 на ссылку выше), что довольно просто с использованием Objective-C.Использование Apple Scripting Bridge в C

Я мог бы написать эти части в Objective-C с помощью C, но это будет довольно сложно и предпочтет полный подход C.

+0

Я нашел http://developer.apple.com/mac/library/qa/qa2001/qa1026.html, где показано, как запускать applescripts из C. Я предполагаю, что это может быть хорошим началом, но оно довольно устарело и doesn Кажется, что скомпилировать правильно 10.6 –

ответ

0

AEBuild использовать строки Printf-иш формата значительно сократить объем работы, необходимый для создания и отправки событий Apple, в C:

http://developer.apple.com/mac/library/technotes/tn/tn2045.html

Вы должны знать свой путь вокруг событий Apple, чтобы использовать их (коды с четырьмя символами, насколько глаз может видеть, ночевать), но для разумно простых задач они вполне пригодны для использования. Формат строковой строки похож (хотя и не совсем идентичный) на формат, используемый AEDebug, поэтому, если вам нужны некоторые подсказки о том, как структурировать строки сборки, включите AEDebug в целевом приложении и затем отправьте ему некоторые события из AppleScript.

Вы также можете найти ASDictionary (http://appscript.sourceforge.net/tools.html). Он включает в себя опцию экспорта словаря приложения в виде простого текстового файла, что упрощает поиск ключевых слов в стиле AppleScript и получение их эквивалентов кода с четырьмя символами. Кроме того, экспортер клея ObjC сбрасывает все четырехзначные коды словаря в удобный .h-файл (просто выньте строки #import).

1

Насколько я знаю, скриптовый мост является Objective-C (нет чистого эквивалента C (Carbon)).

Это говорит о том, что calling Objective-C methods from C не сложно использовать.

функция
+0

Это проще, чем я думал. Спасибо за ссылку! –