Как я могу определить аргументы для частной функции API? - PullRequest
1 голос
/ 18 июня 2010

Я хочу создать замену для переключателя приложений (он же «cmd + tab»).

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

То, чего я достиг на данный момент:

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

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

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

Обновление:

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

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

1 Ответ

1 голос
/ 18 июня 2010

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

...