Использование Apple Scripting Bridge в C - PullRequest
0 голосов
/ 18 декабря 2009

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

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

Ответы [ 2 ]

1 голос
/ 18 декабря 2009

Функции AEBuild используют строки формата printf-ish, чтобы значительно сократить объем работы, необходимой для создания и отправки событий 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 голос
/ 18 декабря 2009

Насколько я знаю, Scripting Bridge является только Objective-C (нет чистого C (Carbon) эквивалента).

Тем не менее, вызов методов Objective-C из C не сложен вне использования.

...