2010-06-18 5 views
1

Я хочу создать замену для переключателя приложений (aka 'cmd + tab').Как определить аргументы для частной функции API?

Я знаю, что это возможно, потому что Lite Switch X делает это.

То, что я получил до сих пор достигнуто:

Силой выходе из дока и вызова CPSRegisterForKey() (который является частной функции API) можно предотвратить + вкладку CMD по умолчанию работать.

Второй шаг - два регистра горячих клавиш для моего приложения. Стандартный способ сделать это, RegisterEventHotKey(), не работает. Немного googling и GDBing предполагает, что Dock и Lite Switch X используют CGSSetHotKeyEnabled() и CGSSetHotKey() (оба эти являются частными функциями API). Проблема в том, что я не знаю, какие аргументы эти функции принимают.

Как определить аргументы для частной функции API?

Update:

У меня есть немного дальше CGSSetHotKey():

OSErr setupResult = CGSSetHotKey(_CGSDefaultConnection(), unknownArg, unknownArg, unknownArg, kCGEventFlagMaskCommand, ???, ???, ...);

ответ

1

Вы пробовали использовать class-dump? Обычно это очень полезно.

+0

Закрыть, но без сигары! Все вызовы - это обычные C, а не Objective-C. Однако это было по-прежнему полезно. Благодаря! –

+0

Упс! Вы абсолютно правы. Вы можете использовать 'gdb' для присоединения к Finder, как вы это сделали, но тогда у вас нет символов для этих разделяемых библиотек. Интересная задача ... –

Смежные вопросы