Estoy tratando de generar eventos de teclado keydown y keyup mediante programación. Actualmente estoy usando CGPostKeyboardEvent para hacer esto, pero estoy buscando una forma de hacerlo en un nivel inferior. Miré DDHidLib pero no pude encontrar una manera de crear un evento falso. ¿Alguien puede ayudar?¿Cómo simular una pulsación de tecla de bajo nivel en os x?
actualización: Gracias a los consejos de Weichsel Ahora estoy creando un evento pulsada la tecla con lo siguiente:
CGEventRef e = CGEventCreateKeyboardEvent (NULL, (CGKeyCode)52, true);
CGEventPost(kCGSessionEventTap, e);
CFRelease(e);
la que he encontrado here.
Sin embargo,, mi problema sigue en pie, así que elaboraré un poco. La aplicación (tercera parte) que me gustaría enviar pulsaciones de teclas a DDHidLib's implementa la función de captura clave:
- (void) ddhidKeyboard: (DDHidKeyboard *) keyboard
keyDown: (unsigned) usageId;
Y esto nunca se llama utilizando el método actual. Mi suposición es que la tecla simulada con CGEventCreateKeyboardEvent está en un nivel demasiado alto para ser capturado por ddhidKeyboard: keyDown. Entonces, lo que intento hacer es crear el evento de keydown a un nivel suficientemente bajo como para que ddhidKeyboard: keyDown lo reconozca.
Gracias! He actualizado la publicación según su sugerencia, pero desafortunadamente no solucionó mi problema. He proporcionado más información sobre el problema. – Lou
Hmmm. ¿reconoce ddhidKeyboard las pulsaciones de tecla globales si la aplicación que lo implementa no es el proceso frontal? –
Lo hace de hecho. – Lou