2010-06-18 3 views
1

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, ???, ???, ...);

Répondre

1

Avez-vous essayé d'utiliser class-dump? C'est généralement très utile.

+0

Fermer mais pas de cigare! Les appels sont tout simplement vieux C, pas Objective-C. Cependant, c'était toujours utile. Merci! –

+0

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 ... –

Questions connexes