HOOK CLAVIER, KEYDOWN, KEYUP, API, SIMPLE, TOUCHE, INTERRUPTION, TACHE DE FOND,

cs_franckydeluka Messages postés 228 Date d'inscription mardi 5 avril 2005 Statut Membre Dernière intervention 4 janvier 2008 - 6 juin 2005 à 10:17
cs_hwoarang Messages postés 18 Date d'inscription samedi 1 mars 2003 Statut Membre Dernière intervention 27 juin 2008 - 8 avril 2007 à 22:09
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/31851-hook-clavier-keydown-keyup-api-simple-touche-interruption-tache-de-fond-spy-espion

cs_hwoarang Messages postés 18 Date d'inscription samedi 1 mars 2003 Statut Membre Dernière intervention 27 juin 2008
8 avril 2007 à 22:09
Merci beaucoup. Je cherchais justement les évenements associés à la pression d'une touche...
Rico 95 Messages postés 18 Date d'inscription mardi 13 mars 2007 Statut Membre Dernière intervention 21 mai 2008
14 mars 2007 à 20:24
Salut,

Ce code me paraît très intéressant...

Par contre j'ai du mal à comprendre quels sont les arguments que je doit utiliser en entrer pour faire tourner cette fonction

Merci d'avance

Rico
cs_zifnig Messages postés 16 Date d'inscription vendredi 10 septembre 2004 Statut Membre Dernière intervention 28 mai 2007
12 sept. 2006 à 14:12
Salut,

Je cherche à faire un soft qui permettrait de remplacer une touche tapée au clavier par une autre avant qu'elle soit transmise à l'application active. Y a-t-il une solution en VB?
ntm113 Messages postés 12 Date d'inscription dimanche 19 octobre 2003 Statut Membre Dernière intervention 20 juillet 2006
19 juil. 2006 à 00:58
Bonne idée ce code, mais la fonction HookEtatKeyProc est gérée de façon très approximative.

L'argument lParam se récupère ByRef et son type est KBDLLHOOKSTRUCT dont voici la définition :

Type KBDLLHOOKSTRUCT
vkCode As Long
scanCode As Long
flags As Long
time As Long
dwExtraInfo As Long
End Type

Le code de la touche concernée se trouve dans lParam.vkCode, donc pour tester s'il s'agit de la touche "S" il faut faire :
If lParam.vkCode = asc("S")...
ou bien
If lParam.vkCode = vbKeyS...
krtr Messages postés 2 Date d'inscription mardi 21 février 2006 Statut Membre Dernière intervention 22 février 2006
22 févr. 2006 à 11:54
Merci pour ta reponse, mais je vien de tester et c'est toujours le meme code qui apparait avec differentes touches, alors si vous pouviez m'aiguiller un peu sur la variable contenant le code de la touche ce serait sympa. A mon avis je ne dois pas faire ce qu'il faut mais bon...

Merci encore.
cs_salazar Messages postés 241 Date d'inscription mercredi 1 octobre 2003 Statut Membre Dernière intervention 19 février 2006 2
21 févr. 2006 à 23:00
Fait un debug print sur la fonction de hoock et note la valeur de ta touche. Cette valeur est ensuite traitée lors du Case...
Ce prog fait déjà ce que tu souhaites, masi avec une combinaison précise de touche (pour l'exemple).

Bon courage ;o)
krtr Messages postés 2 Date d'inscription mardi 21 février 2006 Statut Membre Dernière intervention 22 février 2006
21 févr. 2006 à 19:49
Salut, et merci pour ce code.

J'aurai souhaiter savoir comment connaitre la touche enfoncé, car j'aimerai faire un programme qui tourne en tache de fond (sous un autre programme en cours d'utilisation dans mon cas) et qui emmet un son 5 secondes apres l'appui sur une touche précise.

Je vous remercie d'avance.
cs_salazar Messages postés 241 Date d'inscription mercredi 1 octobre 2003 Statut Membre Dernière intervention 19 février 2006 2
7 juin 2005 à 09:48
******************************************************************************************
* Principe de fonctionnement du HOOKING : Pour ne pas planter VB
******************************************************************************************

On détourne l'instruction qui véhicule les messages Windows, lorsque le clavier est concerné : WH_KEYBOARD_LL. On exécute notre procédure HookEtatKeyProc, puis on redonne la main à Windows pour qu'il continue à traiter les messages.

Avant de quitter l'appli, il faut sortir normalement par le bouton Fermer de l'appli, qui permet de désinstaller notre précédure, sinon -> plantage

Pour arreter l'appli, ne pas cliquer sur le bouton Stop de VB, sinon -> plantage

Ne pas mettre de point d'arret dans la procédure HookEtatKeyProc, sinon -> plantage. Utiliser le debug.print

En cours de fonctionnement, éviter de modifier le code dans la procédure HookEtatKeyProc, sinon risque de plantage.
cs_Jielde Messages postés 226 Date d'inscription mardi 17 octobre 2000 Statut Membre Dernière intervention 1 décembre 2010
7 juin 2005 à 00:25
C'est simpa mais à tendance à faire planter VB lorsque l'on veux modifié le code après éxécution.
cs_franckydeluka Messages postés 228 Date d'inscription mardi 5 avril 2005 Statut Membre Dernière intervention 4 janvier 2008 1
6 juin 2005 à 10:17
Super tes API
source précise, claire, simple
merci
10/10