Frage

Ich versuche programmgesteuert, Tastatur -Tastatur- und Tastaturereignisse zu generieren. Ich verwende derzeit CGPostKeyboardEvent, um dies zu tun, aber ich suche nach einer Möglichkeit, dies auf einer niedrigeren Ebene zu tun. Ich habe DDHIDLIB angesehen, konnte aber keinen Weg finden, um ein gefälschtes Ereignis zu erstellen. Kann jemand helfen?

aktualisieren: Vielen Dank an den Rat von Weichsel. Ich erstelle jetzt ein Schlüssel -Down -Ereignis mit Folgendem:

  CGEventRef e = CGEventCreateKeyboardEvent (NULL, (CGKeyCode)52, true);
  CGEventPost(kCGSessionEventTap, e);
  CFRelease(e);

was ich gefunden habe hier.

Jedoch, Mein Problem steht immer noch, also werde ich ein bisschen näher erläutern. Die Anwendung (Drittanbieter), die ich Tastaturen an Geräte senden möchte Ddhidlib's Schlüsselförderungsfunktion:

- (void) ddhidKeyboard: (DDHidKeyboard *) keyboard
             keyDown: (unsigned) usageId;

Und dies wird nie mit der aktuellen Methode aufgerufen. Ich vermute, dass der mit CGEventCreateKeyboardEvent simulierte Schlüssel -Down zu hoch ist, um von DdhidKeyboard: Keydown erfasst zu werden. Ich versuche also zu erstellen, dass das Schlüsseldown -Ereignis auf einem ausreichend niedrigen Niveau erstellt wird, so dass es von DDHIDKeyboard: Keydown erfasst wird.

War es hilfreich?

Lösung

Was ist los mit Quartz Event Services?
Ich denke, Sie sind auf dem richtigen Weg, aber Sie sollten verwenden CGEventCreateKeyboardEvent Anstatt von CGPostKeyboardEvent Weil letzteres seit Mac OS X 10.6 veraltet ist.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top