OVH Cloud OVH Cloud

intercepter clavier

6 réponses
Avatar
Sebho
Salut

je voudrais intercepter les touches appuyées au clavier, quelque soit
l'appli qui a le focus,
puis mon appli doit décider si oui ou non, il faut envoyer la touche à l'app
qui a le focus
(promis c'est pas pour faire un spy)

si qqun peut m'aider

sebho

6 réponses

Avatar
phg13
Exemple pour connaitre la touche pressée (dans ce cas du numerique)


Private Sub Txt_Codenom_keypress(keyascii As Integer)
If keyascii < 48 Or keyascii > 57 Then
keyascii = 0
End If
End Sub



"Sebho" a écrit dans le message de
news:
Salut

je voudrais intercepter les touches appuyées au clavier, quelque soit
l'appli qui a le focus,
puis mon appli doit décider si oui ou non, il faut envoyer la touche à


l'app
qui a le focus
(promis c'est pas pour faire un spy)

si qqun peut m'aider

sebho




Avatar
Sebho
ce n'est pas tout a fait ce quie j'ai demandé en fait, puisque la procédure
keypress n'est déclenchée QUE si ton appli a le focus

sebho
Avatar
Zoury
Salut Sebho! :O)

Ça ne peut être fait qu'avec VB. Grossièrement, tu dois te faire une DLL en
C/C++ (par exemple) qui elle pourra faire un hook sur le système en entier.
Ensuite tu pourras utiliser le Callback pour transmettre les infos et
permettre à ton application VB de faire ce qu'elle veut avec.

Voici une discussion plus détaillé :
http://groups.google.com/groups?threadmbe3d37%24b880d8a0%24a0c5e994%40default

--
Cordialement
Yanick Lefebvre - MVP pour Visual Basic
http://faq.vb.free.fr/?rubrique=0 - http://www.mvps.org/vbnet/
http://www.mentalis.org/agnet/apiguide.shtml - http://www.mztools.com/

Merci de poster les réponses au groupe afin d'en faire profiter à tous
"Sebho" wrote in message
news:
Salut

je voudrais intercepter les touches appuyées au clavier, quelque soit
l'appli qui a le focus,
puis mon appli doit décider si oui ou non, il faut envoyer la touche à


l'app
qui a le focus
(promis c'est pas pour faire un spy)

si qqun peut m'aider

sebho




Avatar
François Picalausa
Bonjour/soir,

Je te conseille de voir du côté des hooks.

En ce qui concerne la souris, tu trouvera un exemple sur cet article:
http://support.microsoft.com/default.aspx?kbid#8672

pour le clavier, voir
http://msdn.microsoft.com/library/en-us/winui/winui/windowsuserinterface/windowing/hooks/hookreference/hookfunctions/setwindowshookex.asp
et WH_KEYBOARD

--
François Picalausa (MVP VB)
FAQ VB : http://faq.vb.free.fr
MSDN : http://msdn.microsoft.com


"Sebho" a écrit dans le message de
news:
Salut

je voudrais intercepter les touches appuyées au clavier, quelque soit
l'appli qui a le focus,
puis mon appli doit décider si oui ou non, il faut envoyer la touche
à l'app qui a le focus
(promis c'est pas pour faire un spy)

si qqun peut m'aider

sebho


Avatar
Sebho
J'ai essayé ca, mais ce ne récupère que les messages
clavier de mon app et pas des autres

hHook = SetWindowsHookEx(WH_KEYBOARD, AddressOf
KeyboardProc, App.hInstance, App.ThreadID)

j'ai essayé avec des 0 à la place de App.hInstance et
App.ThreadID, mais rien n'y fait

help

Merci
sebho
Avatar
François Picalausa
Bonjour/soir,

Comme le disais Zoury, il faut le placer dans une dll
win32, ce quin'est pas possible en VB. (Oooopppppssss :-/)
Par contre, VBAccelerator propose un composant pour celà:
http://www.vbaccelerator.com/codelib/hook/vbalhook.htm

-----Message d'origine-----
J'ai essayé ca, mais ce ne récupère que les messages
clavier de mon app et pas des autres

hHook = SetWindowsHookEx(WH_KEYBOARD, AddressOf
KeyboardProc, App.hInstance, App.ThreadID)

j'ai essayé avec des 0 à la place de App.hInstance et
App.ThreadID, mais rien n'y fait

help

Merci
sebho
.