cs_jud83
Messages postés9Date d'inscriptionmardi 30 septembre 2003StatutMembreDernière intervention19 février 2011
-
9 mars 2005 à 20:52
BruNews
Messages postés21041Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019
-
10 mars 2005 à 00:26
Dans une application VB , je souhaite détecter la fenêtre active de Windows (que ce soit ou non une fenetre de mon application) : Pas de probleme.
La où je coince c'est lorsque je cherche à savoir si cette fenetre reçois des événements souris ou clavier : Les fonctions GetMessage et PeekMessage de l'API ne renvoient que les message des fenêtres appartenant à l'application qui lance la fonction.
Quelqu'un peut-il me dire comment faire pour savoir dans mon programme VB lancé en tache de fond par exemple, si la fenetre active de Windows (celle dans laquelle on travaille comme une fenetre Word, Excel, OutLook, IE ...) a reçu un événement de clavier ou de souris ?
cs_CanisLupus
Messages postés3757Date d'inscriptionmardi 23 septembre 2003StatutMembreDernière intervention13 mars 200618 9 mars 2005 à 21:41
Si tu sais détecter la fenêtre active, il ne te reste plus qu'à utiliser l'api GetAsyncKeyState() pour analyser les frappes de touches.
Pour des exemples, regarde sur le site avec "keylogger".
BruNews
Messages postés21041Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 201917 9 mars 2005 à 23:49
La surveillance des événements au niveau de tout le système se fait par les hooks, SetWindowsHookEx(), mais seulement avec du code natif donc infaisable en VB. Faut compiler une dll en C avec les fonctions de hook et tu pourras appeler depuis VB.
cs_jud83
Messages postés9Date d'inscriptionmardi 30 septembre 2003StatutMembreDernière intervention19 février 2011 9 mars 2005 à 23:48
Super !
Merci.
Comme on dit, il vaut mieux 1 qui sait que 10 qui cherchent !
J'avais pas eu la curiosité d'aller voir les constantes Virtual-Key Codes car les constantes souris sont en tout début de liste.
cs_CanisLupus
Messages postés3757Date d'inscriptionmardi 23 septembre 2003StatutMembreDernière intervention13 mars 200618 10 mars 2005 à 00:09
Suis OK avec toi BruNews.
Mais j'ai voulu donner une réponse VB à une question VB. Quoique, mea culpa, j'ai oublié de dire que pour cette api GetAsyncKeyState() il fallait utiliser un timer. Je pensais que ça tombait sous le sens.