开发者

Using Apple Scripting Bridge in C

开发者 https://www.devze.com 2022-12-14 13:36 出处:网络
I\'m wondering if it is possible to use Scripting Bridge (as discussed here) in C. What I\'m trying to do is control and/or ge开发者_JS百科t information from Apple applications (such as iTunes, see li

I'm wondering if it is possible to use Scripting Bridge (as discussed here) in C. What I'm trying to do is control and/or ge开发者_JS百科t information from Apple applications (such as iTunes, see link listing 2.1 & 2.2 on above link) which is fairly easy using Objective-C.

I could write those parts in Objective-C using C, but that would get pretty complicated and would much prefer a complete C approach.


The AEBuild functions use printf-ish format strings to significantly reduce the amount of work it takes to build and send Apple events in C:

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

You do need to know your way around Apple events in order to use them (four-char codes as far as the eye can see, natch), but for reasonably simple tasks they're quite usable. The build string format is similar (though not quite identical) to the format used by AEDebug, so if you need some clues on how to structure your build strings, enable AEDebug on the target application and then send it some events from AppleScript.

You may also find ASDictionary (http://appscript.sourceforge.net/tools.html) useful. It includes an option for exporting an application's dictionary as a plain text file, making it easy to look up AppleScript-style keywords and get their four-char code equivalents. Also, the ObjC glue exporter dumps all of the dictionary's four-char codes into a convenient .h file (just take out the #import lines).


As far as I know, Scripting Bridge is Objective-C only (there's no pure C (Carbon) equivalent).

That said, calling Objective-C methods from C isn't complicated beyond use.

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号