在C中使用Apple Scripting Bridge

时间:2009-12-18 06:52:01

标签: c macos scripting-bridge

我想知道是否可以在C中使用Scripting Bridge(如here所述)。我要做的是控制和/或从Apple应用程序获取信息(例如iTunes,请参阅链接列表2.1& 2.2在上面的链接上)使用Objective-C相当容易。

我可以使用C在Objective-C中编写这些部分,但这会非常复杂,并且更喜欢完整的C方法。

2 个答案:

答案 0 :(得分:1)

据我所知,Scripting Bridge只是Objective-C(没有纯C(碳)等价物。)

尽管如此,calling Objective-C methods from C并不复杂,无法使用。

答案 1 :(得分:1)

AEBuild函数使用printf-ish格式字符串来显着减少在C中构建和发送Apple事件所需的工作量:

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

你需要了解Apple事件的方式才能使用它们(就目前的情况而言,可以看到四个字符代码,natch),但对于相当简单的任务,它们非常有用。构建字符串格式与AEDebug使用的格式类似(尽管不完全相同),因此如果您需要一些关于如何构建构建字符串的线索,请在目标应用程序上启用AEDebug,然后从AppleScript发送一些事件。

您可能还会发现ASDictionary(http://appscript.sourceforge.net/tools.html)很有用。它包含一个选项,用于将应用程序的字典导出为纯文本文件,从而可以轻松查找AppleScript样式的关键字并获得它们的四字符代码。此外,ObjC粘合导出器将所有字典的四字符代码转储到方便的.h文件中(只需取出#import行)。