Comment simuler une pression de touche de bas niveau sur os x?
-
20-09-2019 - |
Question
Je suis en train de générer keydown du clavier et des événements KeyUp programmation. J'utilise actuellement CGPostKeyboardEvent pour ce faire, mais je suis à la recherche d'un moyen de le faire à un niveau inférieur. Je l'ai regardé DDHidLib mais ne pouvait pas trouver un moyen de créer un faux événement. Quelqu'un peut-il aider?
mise à jour : Merci aux conseils de Weichsel Je crée maintenant un événement clé vers le bas ce qui suit:
CGEventRef e = CGEventCreateKeyboardEvent (NULL, (CGKeyCode)52, true);
CGEventPost(kCGSessionEventTap, e);
CFRelease(e);
Cependant , mon problème est toujours debout, donc je développerai un peu. L'application (3ème partie) que je voudrais envoyer à outils
- (void) ddhidKeyboard: (DDHidKeyboard *) keyboard
keyDown: (unsigned) usageId;
Et ce ne sera jamais appelé en utilisant la méthode actuelle. Je pense que la clé vers le bas simulé avec CGEventCreateKeyboardEvent est trop élevé à un niveau à être capturé par ddhidKeyboard: keyDown. Donc ce que je suis en train de faire est de créer l'événement KeyDown à un niveau suffisamment faible pour qu'il soit reconnu par ddhidKeyboard: keyDown.
La solution
Quel est le problème avec Quartz Event Services
Je pense que vous êtes sur la bonne voie, mais vous devez utiliser CGEventCreateKeyboardEvent
au lieu de CGPostKeyboardEvent
parce que ce dernier est obsolète depuis Mac OS X 10.6.
Autres conseils
robinets d'événements peuvent injecter au niveau HID si vous exécutez en tant que root