2010-11-23 177 views
0

我正在尝试挂钩可可API。挂钩可可API?

我知道可可为钩子提供了一个公共的API,因此可以挂钩系统功能并检索信息,例如上下文的当前字体设置。

我也试图钩从可可绘制api。

有人可以告诉我如何实现的细节。或者谈论可可API的钩子?我的意思是“获取对特定代码执行的控制权的基本技术,它提供了一种直接的机制,可以轻松地改变操作系统的行为以及第三方产品,而无需提供其源代码“。我的要求是,如果任何应用程序/系统正在绘制某些东西,那么我希望这些绘制说明应该先找到我。然后我不能存储这些命令,稍后进行一些处理。

+2

请更具体地描述你想要做什么。 – 2010-11-23 09:55:03

+0

添加了更多详细信息。请告诉我,如果它足够。 – MacGeek 2010-11-23 10:16:25

+0

你是什么意思? – 2010-11-23 10:17:20

回答

3

您正在寻找的术语类似于“全系统代码注入”,而Cocoa没有提供任何此类API的API。你需要看看像mach_starSIMBL。但说实话,这是其中的一件事,如果你不得不问,它可能对你来说有点先进。修改其他进程的代码是一个巨大的PITA,即使有更多的mach_star提供的帮助,也很难做到。如果你想看看有多难,看看Unsanity's site。这是在OS X上率先推出代码注入的公司,他们的整个产品线都以此为基础 - 其中许多程序仍与OS X 10.6不兼容。

2

您选择的词汇以及涵盖的范围非常广泛,这表明您需要从一开始就着手。有一个简单的可可应用tutorial here。它引导您完成为Mac创建Cocoa应用程序的基本过程。从那里开始,然后发布更具体的问题。

1

包括...

#import <objc/objc.h> 
#import <objc/runtime.h> 

将让你有机会在运行时修改类和对象。虽然这很“鲁莽”。

一个好得多的想法是使用Objective-C Categories更安全的访问。