Sto provando a generare gli eventi keydown e keyup della tastiera a livello di programmazione. Attualmente sto usando CGPostKeyboardEvent per fare questo, ma sto cercando un modo per farlo a un livello inferiore. Ho dato un'occhiata a DDHidLib ma non sono riuscito a trovare un modo per creare un evento falso. Qualcuno può aiutare?Come simulare un tasto di basso livello su OS X?
aggiornamento: 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 here.
Tuttavia il, il mio problema rimane valido, quindi elaborerò un po '. L'applicazione (3a parte) che vorrei inviare pressioni di tasto per implementa DDHidLib's tasto funzione di cattura:
- (void) ddhidKeyboard: (DDHidKeyboard *) keyboard
keyDown: (unsigned) usageId;
E questo non viene mai chiamato con il metodo corrente. La mia ipotesi è che il tasto giù simulato con CGEventCreateKeyboardEvent sia troppo alto per essere catturato da ddhidKeyboard: keyDown. Quindi, quello che sto cercando di fare è creare l'evento keydown a un livello sufficientemente basso tale da essere riconosciuto da ddhidKeyboard: keyDown.
Grazie! Ho aggiornato il post in base al tuo suggerimento, ma purtroppo non è stato risolto il problema. Ho fornito alcune ulteriori informazioni sul problema. – Lou
Hmmm. ddhidKeyboard riconosce i tasti di pressione globali se l'app che implementa non è il processo frontale? –
Lo fa davvero. – Lou