Bonjour à tous,
Dans ma tentative de la pratique de la programmation pour m'éxercer et m'amuser je suis tombé sur un os pour lequel je ne trouve pas de documentation satisfaisante :
j'essaie, sous linux, de simuler l'appui de touches. J'ai trouvé cet exemple de code, qui utilise la X11 et qui marche :
/* it is compatible with latin keyboard */
#include <X11/extensions/XTest.h>
#define XK_LATIN1
#define XK_MISCELLANY
#define XK_XKB_KEYS
#include <X11/keysymdef.h>
#include <X11/Xlib.h>
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char **argv)
{
Display* pDisplay = XOpenDisplay( NULL );
KeySym key[] = { XK_h,XK_e,XK_l,XK_l,
XK_o,XK_space,XK_w,XK_o,
XK_r,XK_l,XK_d,XK_Return};
int i;
for( i = 0; i < 12; i++ )
{
XTestFakeKeyEvent ( pDisplay, XKeysymToKeycode( pDisplay, key[i] ),
True, 100);
}
XTestFakeKeyEvent ( pDisplay, XKeysymToKeycode( pDisplay, key[11] ),
False, CurrentTime );
if( pDisplay == NULL ) return 1;
XCloseDisplay(pDisplay);
return 0;
}
Mon problème est que je voudrais pouvoir avoir en entrée une chaine de caractère, qui serait alors écrite. Mais pour cela, il faudrait que je trouve l'équivalent en keySym pour chaque caractère. Est-ce que quelqu'un saurait comment faire ?
(Si vous souhaitez compiler le code, il faut installer la bibliothèque libxtst-dev)
Merci de votre aide,
Cordialement.
Partager