Lire movement souri

L'auteur de ce sujet a trouvé une solution à son problème.
Auteur du sujet

Salut,

j'aimerais savoir comment lire les mouvements de la souri pour les enregistrer dans un fichier? La difficulté est que je ne veux pas lire la position du curseur, uniquement les mouvements physique de la souri. L'objectif étant de comparer les mouvements envoyé par la souri (quand l'utilisateur la bouge) et les mouvements effectué à l'écran (le curseur qui bouge) et déclenché une alerte quand les deux ne correspondent pas (la souri n'a pas bougé mais le curseur c'est déplacé de 500px a gauche par exemple).

Salut,

Serait-il possible de faire un effort pour l'orthographe s'il te plaît ? Et surtout dans le titre, sinon tu n'auras pas beaucoup de réponse. Lire mouvement souris en <Langage>

Pourrais-tu préciser dans quelle langage tu souhaite faire ça ?

Et je ne comprend pas bien comment cela serait possible, comment la souris pourrais bouger sans que le curseur bouge ou inversement ? (A moins que la souris ne capte pas bien, mais dans ce cas la tu ne peux rien y faire). Si tu veux de l'aide, il nous faudra plus de détail ainsi qu'une meilleure présentation et une meilleure orthographe.

+1 -0

j’ai souris au titre.

(utilise le pilote.1)


  1. sans savoir quelle langue de programmation, quelle bibliothèque, voire quel système d’exploitation, le monde risque d’avoir du mal à t’aider… 

écrire français sous Windows : fr-oss (azerty++) ou bépo (étudié pour le français) | <insérer un truc spirituel ici>

+1 -0
Staff

les mouvements physique de la souris

Soit tu fais confiance au système pour avoir bien récupéré cette donnée, soit tu le fais toi-même. Physiquement, donc. Tu installes un truc qui capte la position de la souris dans le monde réel et tu compares à ce que te donne ton PC.

Sachant que sauf cas très particulier, tu n'as pas réellement envie de faire ça. Bref, à quel problème souhaites-tu répondre ?

(utilise le pilote.)

S'il veut les mouvements physique de la souris (et les comparer avec le curseur), ce sera insuffisant.

Édité par Gabbro

Hier, dans le parc, j'ai vu une petite vieille entourée de dinosaures aviens. Je donne pas cher de sa peau.

+1 -0
Staff

Sans compter non plus que l'on ne sait même pas de quel OS il s'agit, alors que ce style de problème dépend très fortement du système d'exploitation…

Je ne sais pas bien à quel problème c'est supposé répondre mais je pense que le meilleur conseil qu'on puisse te donner c'est de prendre quelques moments pour respirer un coup et te demander pour quelle raison tu veux faire ça exactement.

D'ici on dirait que tu cherches à implémenter une solution technique impossible à un problème probablement beaucoup plus simple que ça. Dans ce genre de cas la seule chose intelligente à faire, c'est machine arrière.

Édité par nohar

I was a llama before it was cool

+1 -0

(utilise le pilote.)

S'il veut les mouvements physique de la souris (et les comparer avec le curseur), ce sera insuffisant.

Gabbro

il est possible de bouger la souris logiciellement (par exemple Windows XP a une option pour téléporter la souris automatiquement sur le bouton « OK » quand un dialogue apparaît). j’ai supposé que c’était ce que le p·o· voulait détecter.

écrire français sous Windows : fr-oss (azerty++) ou bépo (étudié pour le français) | <insérer un truc spirituel ici>

+0 -0

Donc en gros tu aimerais comparé les données reçu de la part de la souris avec le mouvement (ou la position) actuel du curseur ? (Dans le cas ou un cheval de troi, ou une prise de contrôle externe du PC déplacerais le curseur ?)

+0 -0

Tu lis la position de la souris toutes les x ms avec le langage et la méthode que tu souhaites et tu compares aux dernières données relevés. Tu établis un écart qui est trop grand (selon toi) pour que ce soit un utilisateur qui ai bougé la souris. Facile. Le plus compliqué, je pense, sera de déterminer ce x et la distance max.

It goes against the grain of modern education to teach children to program. What fun is there in making plans, acquiring discipline in organizing thoughts, devoting attention to detail and learning to be self-critical? – Perlis

+0 -0
Staff

Sans parler du ratio entre le mouvement perçu par le capteur et le mouvement imprimé au pointeur en pixels/s. Ou d'une éventuelle fonction d'accélération non linéaire.

Ni du système de filtre qui permet de rendre la souris plus fluide…

Ma question n'a toujours pas trouvé sa réponse, pourquoi cherches-tu à mesurer un tel écart ?

Édité par nohar

I was a llama before it was cool

+3 -0

en gros je souhaite savoir simplement si le mouvement du curseur est naturel (mouvement de la souris) ou si il provient d'un logiciel tiers.

Dans ce cas je ne vois qu'une solution, mais c'est potentiellement compliqué: intercepter les appels à SetCursorPos, une des principales fonctions qui permettent de « téléporter » le curseur. Mais vu que ça se passe dans user32.dll, ton programme sera direct classé comme dangereux à moins d'avoir des autorisations comparables à celles des anti-virus. Ou alors tu t'amuses avec le driver ou la couche basse, mais bonne chance.

Plus simple, tu peux tenter ta chance avec un hook WH_MOUSE_LL, mais ce n'est pas garanti qu'un appel à une fonction SetCursorPos appelle effectivement ton hook (il faut essayer). Là encore il y a toutes les chances pour que ton logiciel soit catégorisé comme malveillant, puisque c'est ce qui s'utilise typiquement pour les keyloggers/mouseloggers.

Par contre moi non plus je ne vois pas trop où tu veux en venir.

  • Si tu cherches à confiner le curseur dans une zone bien définie (par exemple pour éviter de sortir par inadvertance de la fenêtre d'un jeu qui n'est pas en plein écran), il y a la fonction ClipCursor
  • Si tu cherches à faire comme dans un FPS où tu peux bouger la souris à l'infini sans être gêné par les bords de l'écran, je ne sais pas comment ils font mais c'est possible en natif (probablement avec un framework comme unity) ou sur le web (voir pointer lock API)
  • Si la « téléportation » du curseur comme dans certaines boîtes de dialogue te gêne, ça se paramètre très probablement dans le panneau de configuration.

Avec ça je crois qu'on a fait le tour et je ne peux qu'approuver les réponses précédentes, essaie de mieux nous expliquer ce que tu veux réellement faire.

Ma plateforme avec 23 jeux de société classiques en 6 langues et 13000 joueurs: http://qcsalon.net/ | Apprenez à faire des sites web accessibles http://www.openweb.eu.org/

+0 -0

@QuentinC : Je suis quasi certain que quand on utilise une tablette ça doit faire appel à ce fameux SetCursorPos quand on pointe le stylo à l'autre bout de la tablette d'un coup et donc le problème ne serait pas résolu avec cette méthode.

+0 -0

@QuentinC : Je suis quasi certain que quand on utilise une tablette ça doit faire appel à ce fameux SetCursorPos quand on pointe le stylo à l'autre bout de la tablette d'un coup et donc le problème ne serait pas résolu avec cette méthode.

Avec le hook je ne suis effectivement pas sûr que les appels programmatiques soient relayés. Je ne pense pas en fait, ça serait trop facile de faire planter le système.

Pour les stylets et PC hybrides, je n'ai aucune idée, je ne suis pas en mesure de tester. A noter qu'il y a des messages spécifiques pour le tactile (WM_TOUCH). Donc ça peut aussi passer complètement ailleurs.

Ma plateforme avec 23 jeux de société classiques en 6 langues et 13000 joueurs: http://qcsalon.net/ | Apprenez à faire des sites web accessibles http://www.openweb.eu.org/

+0 -0
Vous devez être connecté pour pouvoir poster un message.
Connexion

Pas encore inscrit ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte