J'essaie de générer des événements de clavier et de clavier par programmation. J'utilise actuellement CGPostKeyboardEvent pour le faire, mais je cherche un moyen de le faire à un niveau inférieur. J'ai regardé DDHidLib mais n'ai pas pu trouver un moyen de créer un faux événement. Quelqu'un peut-il aider?Comment simuler une pression de bas niveau sur os x?
mise à jour: Merci aux conseils de Weichsel Je suis en train de créer un événement clé vers le bas ce qui suit:
CGEventRef e = CGEventCreateKeyboardEvent (NULL, (CGKeyCode)52, true);
CGEventPost(kCGSessionEventTap, e);
CFRelease(e);
que je trouve here.
Cependant, mon problème subsiste donc je vais élaborer un peu. L'application (3ème partie) que je voudrais envoyer à des frappes de touches utilise la fonction de capture clé DDHidLib's:
- (void) ddhidKeyboard: (DDHidKeyboard *) keyboard
keyDown: (unsigned) usageId;
Et ce ne sera jamais appelé en utilisant la méthode actuelle. Je suppose que la clé simulée avec CGEventCreateKeyboardEvent est trop élevée pour être capturée par ddhidKeyboard: keyDown. Donc ce que j'essaye de faire est de créer l'événement keydown à un niveau suffisamment bas pour qu'il soit reconnu par ddhidKeyboard: keyDown.
Merci! J'ai mis à jour le message selon votre suggestion, mais cela n'a malheureusement pas résolu mon problème. J'ai fourni plus d'informations sur le problème. – Lou
Hmmm. Est-ce que ddhidKeyboard reconnaît les pressions de touches globales si l'application qui l'implémente n'est pas le processus de premier plan? –
Il le fait en effet. – Lou