Domanda

Sto cercando di generare keydown tastiera e gli eventi KeyUp programmazione. Attualmente sto usando CGPostKeyboardEvent per fare questo, ma sto cercando un modo per fare questo a un livello inferiore. Ho guardato DDHidLib, ma non sono riuscito a trovare un modo per creare un evento falso. Chiunque può aiutare?

Aggiorna : Grazie ai consigli di Weichsel ora sto creando un evento premuto il tasto con il seguente:

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

che ho trovato qui .

Tuttavia , il mio problema si è fermato così ho dilungherò un po '. L'applicazione (3a parte) che vorrei inviare pressioni di tasto per attrezzi funzione di cattura chiave di DDHidLib:

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

E questo non viene mai chiamato con il metodo corrente. La mia ipotesi è che la chiave verso il basso simulato con CGEventCreateKeyboardEvent è troppo alto di un livello per essere catturato dai ddhidKeyboard: keyDown. Quindi quello che sto cercando di fare è creare l'evento KeyDown ad un livello sufficientemente basso in modo tale che sarà riconosciuto dal ddhidKeyboard: keyDown.

È stato utile?

Soluzione

Cosa c'è di sbagliato con i servizi per eventi al quarzo?
Penso che tu sia sulla strada giusta, ma è necessario utilizzare CGEventCreateKeyboardEvent invece di CGPostKeyboardEvent perché quest'ultimo è deprecato a partire da Mac OS X 10.6.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top