我正在尝试钩住Cocoa API。
我知道cocoa提供了一个用于挂钩的公共api,因此可以挂钩系统函数并检索信息,如上下文的当前字体设置。
我还试图从可可挂钩的绘图api。
有人能告诉我如何实现的细节吗?或者一些关于Cocoa API挂钩的参考资料?
所谓挂钩,我的意思是“一种控制特定代码执行的基本技术。它提供了一种简单的机制,可以很容易地改变操作系统的行为以及第三方产品,而不需要源代码。”
我的要求是,如果任何应用程序/系统正在绘制某些东西,那么我希望这些绘制指令首先出现在我的面前。然后我无法存储这些命令,以便稍后进行一些处理。
发布于 2010-11-24 14:24:38
您正在寻找的术语类似于“系统范围的代码注入”,而Cocoa没有为任何此类事情提供API。你需要看看像mach_star或SIMBL这样的东西。但老实说,这是其中的一件事,如果你必须问,它可能对你来说有点先进。修改其他进程的代码是一件巨大的事情,甚至更难做好,即使有mach_star提供的帮助。如果你想看看到底有多难,看看Unsanity's site吧。这家公司率先在OS上注入代码,他们的整个产品线都是基于它的--他们的许多程序仍然与OSX10.6不兼容。
发布于 2010-11-23 22:33:22
你选择的词和它们涵盖的范围非常广泛,这表明你需要从一开始就开始。这里有一个简单的Cocoa Application tutorial here。它将引导您完成为Mac创建Cocoa应用程序的基本过程。从这里开始,然后在出现问题时发布更具体的问题。
发布于 2010-11-23 22:50:09
包括..。
#import <objc/objc.h>
#import <objc/runtime.h>将允许您在运行时访问修改类和对象。尽管这是相当“不计后果”的。
一个更好的想法是使用Objective-C Categories实现更“安全”的访问。
https://stackoverflow.com/questions/4254692
复制相似问题