Posez votre question Signaler

Hook clavier en C

frzburn - Dernière réponse le 27 déc. 2003 à 02:43
Bonjour,
J'aimerais savoir comment faire un hook clavier global en c. Un petit exemple serait aussi le bienvenu =)
Ce que je veux c'est quelque chose de tres simple, genre quand la touche 'h' est enfoncé (peu importe à partir que quelle fenetre active) mon programme réagit.

Un peu comme:

[HOOK sur CLAVIER]

if (touche_recue_par_hook == 'h') {
ma_fonction();
}
if (touche_recue_par_hook == 'j') {
ma_fonction2();
}
.......

Merci!
Lire la suite 

Hook clavier en C »

Suggestions
1 réponses
Réponse
+0
moins plus
En gros, et si j'ai bien compris ta question, ton probleme doit pouvoir se resoudre en utilisant ioctl de la libc.
Tu empeche la fonction read d'etre blocante (passe en mode non canonique), tu fait une boucle "infinie" et tu teste si la valeurs de retour de ton read est superieur a 0, tu teste le caractere lu.

En gros ca donne pour la boucle :

while (1)
if ((a = read(0, buffer, 1)) > 0)
{
if (buffer[0] == 'j')
fct0()
...
...
...
}
else
if (a < 0)
break;
}

et pour passer en mode non cannoinique je sais pu exactement le code mais la solution se situe du cote d'une constante vmin que tu doit passer a 0, qui veut dire le nombre de caractere attendu par la fct read.

Si tu trouve vraiment pas au bout d'une recherche acharnée envoie moi un mail :)
Ajouter un commentaire
Ce document intitulé « Hook clavier en C » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?