IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

Simuler un appui clavier vers une autre fenêtre sous Linux


Sujet :

C

  1. #1
    Candidat au Club
    Inscrit en
    Mars 2007
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 3
    Points : 3
    Points
    3
    Par défaut Simuler un appui clavier vers une autre fenêtre sous Linux
    Bonjour,

    Je cherche le moyen sous Linux de simuler un appui clavier vers un programme externe (Firefox dans mon cas) que j'aurais préalablement lancé depuis mon programme en C. (On supposera que Firefox est installé sur la machine en question hein)

    J'ai déjà utilisé la fonction "rechercher" du forum et n'ai rien trouvé qui puisse marcher avec moi (keybd_event() ne fonctionnant que sous Windows...)

    En vous remerciant d'avance pour votre aide

  2. #2
    Candidat au Club
    Inscrit en
    Mars 2007
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    Ca y est après plusieurs heures de recherche Google j'ai enfin trouvé mon bonheur !

    Ce programme exemple écrit "Hello World" dans gedit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    /* 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;
     
        system("gedit");
     
        for( i = 0; i < 13; i++ )
        {
            XTestFakeKeyEvent ( pDisplay, XKeysymToKeycode( pDisplay, key[i] ),
                                    True, CurrentTime );
        }
     
            XTestFakeKeyEvent ( pDisplay, XKeysymToKeycode( pDisplay, key[12] ),
                                    False, CurrentTime );
     
        if( pDisplay == NULL ) return 1;
     
        XCloseDisplay(pDisplay);
        return 0;
    }
    Initialement le deuxième XTestFakeKeyEvent n'existait pas dans la source que j'avais trouvée, mais alors la dernière touche restait appuyée indéfiniment jusqu'au kill du programme...

    Nécéssite libxtst-dev d'installé pour compiler

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 30/06/2014, 22h56
  2. Réponses: 4
    Dernier message: 30/06/2014, 22h52
  3. Récupérer valeur Jlist vers une autre fenêtre
    Par chlock62 dans le forum NetBeans
    Réponses: 0
    Dernier message: 21/01/2010, 11h30
  4. Réponses: 11
    Dernier message: 30/09/2008, 20h52
  5. Aller vers une autre fenêtre de dialogue
    Par Emyleet dans le forum MFC
    Réponses: 35
    Dernier message: 30/04/2008, 16h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo