Je veux créer un remplacement pour le sélecteur d'applications (aka 'cmd + tab').Comment puis-je déterminer les arguments d'une fonction API privée?
Je sais que c'est possible parce que Lite Switch X le fait.
Ce que j'ai accompli jusqu'à présent:
Par la force de quitter le quai et appelant CPSRegisterForKey()
(qui est une fonction API privée) Je peux empêcher le défaut cmd + tab de travail.
La deuxième étape consiste à enregistrer la touche de raccourci pour mon application. La manière standard de le faire, RegisterEventHotKey()
, ne fonctionne pas. Un peu de googling et de GDBing suggère que le Dock et Lite Switch X utilisent CGSSetHotKeyEnabled()
et CGSSetHotKey()
(ces deux fonctions sont des API privées). Le problème que j'ai est que je ne sais pas quels arguments ces fonctions prennent.
Comment puis-je déterminer les arguments d'une fonction API privée?
Mise à jour:
J'ai un peu plus loin avec CGSSetHotKey()
:
OSErr setupResult = CGSSetHotKey(_CGSDefaultConnection(), unknownArg, unknownArg, unknownArg, kCGEventFlagMaskCommand, ???, ???, ...);
Fermer mais pas de cigare! Les appels sont tout simplement vieux C, pas Objective-C. Cependant, c'était toujours utile. Merci! –
Oups! Vous avez absolument raison. Vous pouvez utiliser 'gdb' pour attacher au Finder, comme vous l'avez fait, mais vous n'avez pas de symboles pour ces bibliothèques partagées. Un défi intéressant ... –