2010-11-23 1 views
0

Я пытаюсь использовать API-интерфейс Cookoa.Захватывающий API Cocoa?

Я знаю, что какао предоставляет публичный api для подключения, поэтому можно подключить системную функцию и получить информацию, подобную текущим настройкам шрифта контекста.

Я также пытаюсь подключить эту ави к какао.

Может кто-нибудь указать мне на детали о том, как это можно достичь. Или некоторые ссылки, которые говорят о подключении API-интерфейсов Cocoa?

Подключаясь, я имею в виду «Основополагающий метод получения контроля над конкретным исполнением кода». Он обеспечивает простой механизм, который может легко изменить поведение операционной системы, а также сторонние продукты без наличия их исходного кода «.

Мое требование, если какое-либо приложение/система рисует что-то, тогда я хочу, чтобы эти инструкции по рисованию сначала приходили ко мне. Тогда я не могу сохранить эти команды для некоторой обработки позже.

+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 для любой такой вещи. Вам нужно взглянуть на что-то вроде mach_star или SIMBL. Но, честно говоря, это одна из тех вещей, где, если вы должны спросить, это, вероятно, немного продвинулось для вас. Изменение кода других процессов - это гигантский PITA и еще труднее сделать все правильно, даже с такой же помощью, как и для mach_star. Если вы хотите увидеть, насколько сложно, взгляните на Unsanity's site. Это компания, которая начала внедрение кода на OS X, и вся их линейка продуктов основана на ней, и многие из их программ по-прежнему не совместимы с OS X 10.6.

2

Слова, которые вы выбрали, и очень широкий охват, который они охватывают, предполагают, что вам нужно начинать с самого начала. Существует простое приложение для какао tutorial here. Он исследует основной процесс создания приложения Cocoa для Mac. Начните с этого места, затем отправляйте более конкретные вопросы по мере их возникновения.

1

Включая ...

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

позволит вам иметь доступ к модификации классов и объектов во время выполнения. Хотя это довольно «безрассудно».

Гораздо лучшая идея состоит в том, чтобы использовать Objective-C Categories для более безопасного доступа.

1

Вы не можете перехватывать рисунок другого приложения, как это бывает, но вы можете зафиксировать результаты после факта. Используйте Quartz Window Services, чтобы сделать скриншоты, и Quartz Display Services, чтобы узнать, когда экран обновится.