2011-08-04 7 views
5

Necesito algo así como SendInput en la API de Windows.¿Cómo se envía el carácter Unicode a la aplicación activa?

Veo este método, no sé de todos modos para convertir caracteres Unicode a códigos de teclas virtuales.

CGEventRef CGEventCreateKeyboardEvent (
    CGEventSourceRef source, 
    CGKeyCode virtualKey, 
    bool keyDown 
); 
+0

Puede utilizar SendInput para enviar caracteres Unicode, pero está limitado a UTF-8, ya que se limitan a un corto para WSCAN. Debe configurar wVK a 0x00 y establecer el indicador Unicode de uso (0x0004) en dwFlags. – CaulynDarr

Respuesta

5
CGEventRef e = CGEventCreateKeyboardEvent(NULL, NULL, true); 
CGEventKeyboardSetUnicodeString(e, unicodeStringLength, unicodeString); 
CGEventPost(kCGHIDEventTap, e);  
+4

No parece correcto pasar 'NULL' como el segundo parámetro de' CGEventCreateKeyboardEvent', porque no es un puntero. Sucede que funciona, porque el 'NULL' se trata como cero, que es un código de clave válido. También tenga en cuenta que debe decir 'CFRelease (e)' al final. – JWWalker

Cuestiones relacionadas