Pregunta

Estoy tratando de generar keydown teclado y eventos keyup programación. Actualmente estoy usando CGPostKeyboardEvent para hacer esto, pero estoy buscando una manera de hacer esto en un nivel inferior. He mirado DDHidLib pero no pude encontrar una manera de crear un evento falso. ¿Alguien puede ayudar?

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);

aquí .

Sin embargo , mi problema sigue en pie así que voy a elaborar un poco. La aplicación (tercera parte) que me gustaría enviar pulsaciones de teclas a los implementos que captura la función clave de DDHidLib:

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

Y esto nunca se llama utilizando el método actual. Mi conjetura es que la tecla abajo simulado con CGEventCreateKeyboardEvent es demasiado alto de un nivel para ser capturado por ddhidKeyboard: keyDown. Así que lo que estoy tratando de hacer es crear el evento KeyDown a un nivel suficientemente bajo de tal manera que será reconocido por ddhidKeyboard: keyDown.

¿Fue útil?

Solución

¿Qué pasa con Cuarzo Otros Servicios
Creo que está en el camino correcto, pero debería utilizar CGEventCreateKeyboardEvent en lugar de CGPostKeyboardEvent porque este último está obsoleta desde Mac OS X 10.6.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top