cs_franckydeluka
Messages postés228Date d'inscriptionmardi 5 avril 2005StatutMembreDernière intervention 4 janvier 2008
-
6 juin 2005 à 10:17
cs_hwoarang
Messages postés18Date d'inscriptionsamedi 1 mars 2003StatutMembreDernière intervention27 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.
cs_hwoarang
Messages postés18Date d'inscriptionsamedi 1 mars 2003StatutMembreDernière intervention27 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és18Date d'inscriptionmardi 13 mars 2007StatutMembreDernière intervention21 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és16Date d'inscriptionvendredi 10 septembre 2004StatutMembreDernière intervention28 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és12Date d'inscriptiondimanche 19 octobre 2003StatutMembreDernière intervention20 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és2Date d'inscriptionmardi 21 février 2006StatutMembreDernière intervention22 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és241Date d'inscriptionmercredi 1 octobre 2003StatutMembreDernière intervention19 février 20062 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és2Date d'inscriptionmardi 21 février 2006StatutMembreDernière intervention22 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és241Date d'inscriptionmercredi 1 octobre 2003StatutMembreDernière intervention19 février 20062 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és226Date d'inscriptionmardi 17 octobre 2000StatutMembreDerniè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és228Date d'inscriptionmardi 5 avril 2005StatutMembreDernière intervention 4 janvier 20081 6 juin 2005 à 10:17
Super tes API
source précise, claire, simple
merci
10/10
8 avril 2007 à 22:09
14 mars 2007 à 20:24
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
12 sept. 2006 à 14:12
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?
19 juil. 2006 à 00:58
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...
22 févr. 2006 à 11:54
Merci encore.
21 févr. 2006 à 23:00
Ce prog fait déjà ce que tu souhaites, masi avec une combinaison précise de touche (pour l'exemple).
Bon courage ;o)
21 févr. 2006 à 19:49
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.
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.
7 juin 2005 à 00:25
6 juin 2005 à 10:17
source précise, claire, simple
merci
10/10