Я хочу создать замену для переключателя приложений (он же «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, ???, ???, ...);