Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
889 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  Comment "capturer" un message avant qu'il soit traite par le system?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Comment "capturer" un message avant qu'il soit traite par le system?

n°821041
GoEast
Posté le 12-08-2004 à 07:27:35  profilanswer
 

Bonjour, j'ai un souci qui m'enerve pas mal.
J'aimerais bien savoir comment "capturer" un message passe au systeme avany qu'il soit traite par le systeme. Ceci sous l'environement Windows.
 
Je m'explique.
Ma these consiste a filtrer les movement du curseur issue d'un systeme homme-machine suivant un certain nombre d'algorithmes. Mais le souci est que dans l'ideal, j'aimerai bien que mon programme puisse "savoir" ou le curseur va etre avant que le curseur soit effectivement bouge.
 
Le systeme homme-machine en amont fait bouger le curseur avec un bete "SetCursorPos", alors que dans l'ideal j'aimerai bien "capturer" les messages SetCursorPos, effectuer le filtrage, puis replacer le curseur avec le resultat issu du filtrage. Car sinon le curseur va faire des va-et-viens style (Pos actuelle)->(Pos issu du systemme amont)->(Pos filtre), au lieu de (Pos actuelle)->(Pos filtre).
 
Donc j'aurais besoin de pouvoir capturer les appels de fonctions "SetCursorPos", une espece de callback sur un message SetCursor quoi.
 
Merci beaucoup.

mood
Publicité
Posté le 12-08-2004 à 07:27:35  profilanswer
 

n°821147
oliv5
Pourquoi ? Parce que !
Posté le 12-08-2004 à 10:29:35  profilanswer
 

Il te faut placer un hook de bas niveau sur la souris
Finction Win32 : SetLowLevelMouseHook ou un truc dans le genre. Il te faut faire une DLL qui va gérer les mouvements souris.
 
En revanche, tu ne pourras pas empécher windows de bouger la souris. Il y a eu récemment un post dans le meme genre. Meme pb. Meme réponse : la gestion de la souris se fait en bas niveau dans Windows, le hook ne te permettra que d'etre au courant du moindre evenement souris, mais pas de les empecher.
 
Enfin, je crois que c'est pas possible, contrairement au clavier qui est trés facilement maitrisable. Mais la souris ...

n°821165
GoEast
Posté le 12-08-2004 à 10:41:00  profilanswer
 

Merci beaucoup pour ta reponse, mais au fait je crois que t'as pas exactement compris ce que je veux.
 
Le probleme est bien le fait que le systeme ne passe pas par la souris. Sinon j'aurais qu'a utiliser DirectInput et le problem est regle tres "facilement".
 
En fait la commande "SetCursorPos" ne touche pas a la souris du tout, elle touche directement au curseur (la souris etant un des moyens possibles de changer la position du curseur). Du coup je pense a capturer le message (et je cherche toujours le nom du message:() qui est genere par la commande "SetCursorPos" qui est lance dans le programme en amont, lire le contenu, filtrer la position et la renvoyer au systeme.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  Comment "capturer" un message avant qu'il soit traite par le system?

 

Sujets relatifs
Message de confirmation en JSPrequete infaisable d'une traite ???
message Soap pour web servicecapturer une vidéo provenant d'une caméra IP
Message d'excel sous VB[batch] envoyer message
heure minute seconde en vba pas syncroniser avec le systemmessage d'erreur lié aux sessions
probleme de message au demarageBP de message de retour(axis)
Plus de sujets relatifs à : Comment "capturer" un message avant qu'il soit traite par le system?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR