Capter les Touches Media Center en XP Pro + Hook Clavier

chtibob69 Messages postés 12 Date d'inscription lundi 3 février 2003 Statut Membre Dernière intervention 16 janvier 2010 - 3 avril 2007 à 10:18
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 - 6 avril 2007 à 02:59
Bonjour à tous
Toujours dans le cadre de mon stage je developpe une application travaillant avec une télécommande Microsoft Media Center pour une station de travail en XP Pro
Cette télécommande envoi des code clavier standart que j'interprete directement avec une fonction de Hooking du clavier (http://www.codeguru.com/vb/gen/vb_system/keyboard/article.php/c4831/)

Pour toutes les touches "normale" de la télécommande (pavé numérique, touche de direction, bouton ok, mute volume) je capte bien les évènement.
En revanche, je ne capte pas les touches dédiée à MCE (bouton vert, touche Ma TV, Menu DVD, touches bleue, jaune, verte, rouge)
Pourquoi ?

Je suis d'accord que ces touches son dédiée à MCE mais la télécommande est bien censée envoyé un code à Windows.
Apres je comprends bien qu'il ne sache pas quoi faire avec, mais pourquoi ne la capte t'il pas ?

Si quelqu'un pouvait m'éclaircir sur ce sujet et me montrer comment faire, je suis tout ouie

d'avance merci

Seb

7 réponses

Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
3 avril 2007 à 10:38
Tu pourrais essayer un hook WH_GETMESSAGE, qui te transmettra peut etre davantage de choses...

Renfield
Admin CodeS-SourceS- MVP Visual Basic
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
3 avril 2007 à 10:39
en greffant a coté de cela, Spy++ sur ta fenetre, pour voir si tu recoit un message quelconque lorsque tu presse une des fameuses touches

Renfield
Admin CodeS-SourceS- MVP Visual Basic
0
chtibob69 Messages postés 12 Date d'inscription lundi 3 février 2003 Statut Membre Dernière intervention 16 janvier 2010
4 avril 2007 à 17:29
Après de nombreuses recherches, et des essais d'implémentations de WH_GETMESSAGE vaine,
je me suis tourné vers l'exemple de ce site http://blogs.simplifi.com/brucet/archive/2005/01/25/161.aspx
Il fait quasiment tout ce qu'il me faut à cela près qu'il ne capte les messages que si la form est au premier plan

Comme l'auteur explique sur son site, cela vient du fait que l'on surcharge la méthode WndProc
protected override void WndProc(ref Message message)
        {
            _remote.ProcessMessage(message);           
            base.WndProc(ref message);
        }

Quelqu'un saurait comment faire pour que l'on capte les message tous le temps (même quand l'appli est en arrière plan) ???

PS : chapeau Renfield, t'en connais un rayon niveau API !!!
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
4 avril 2007 à 22:08
voir
http://www.cppfrance.com/codes/HOOK-DLL-HOOK-FACILE-POUR-VB6_41774.aspx

pour capter les messages n'importe quand.

Merci pour te félicitations ^^

Renfield
Admin CodeS-SourceS- MVP Visual Basic
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
chtibob69 Messages postés 12 Date d'inscription lundi 3 février 2003 Statut Membre Dernière intervention 16 janvier 2010
5 avril 2007 à 08:48
oula
du C++ avec des pointeurs de la lecture mémoire et des headers...rien que ça...grr
il n'y aurait pas un exemple plus simple, au moin dans un langage un peu moin barbare ???
0
chtibob69 Messages postés 12 Date d'inscription lundi 3 février 2003 Statut Membre Dernière intervention 16 janvier 2010
5 avril 2007 à 17:59
HELP
là vraiment je bloque
D'un coté j'ai un programme basé sur le Hook du clavier et qui fonctionne très bien même en arrière plan SAUF qu'il ne capte pas les touches spéciales MCE (http://www.codeguru.com/vb/gen/vb_system/keyboard/article.php/c4831/)
De l'autre, un programme qui capte les touches MCE mais uniquement si il est au premier plan http://blogs.simplifi.com/brucet/archive/2005/01/25/161.aspx

Et evidemment, mon bonheur c'est de faire un mix des deux : capter les touches MCE même si l'appli est en arrière plan

Après une bonne journée à chercher des informations, je suis dans l'impasse totale

need help...
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
6 avril 2007 à 02:59
la source cpp est une dll...
suffit de la compiler telle quelle et c'est tout.

la suite du programme se passe en VB6.
A utiliser avec des Declare Function ... "classiques"

Ca va te permettre de réaliser des hooks sur tout le systeme.
tu verras donc passer, entre autres un message attestant de l'actrivité de ta touche.

Renfield
Admin CodeS-SourceS- MVP Visual Basic
0
Rejoignez-nous