Récupérer les impulsions de la souris
iffefroi
-
iffefroi Messages postés 13 Statut Membre -
iffefroi Messages postés 13 Statut Membre -
Bonjour,
Je voudrais, par un moyen ou un autre, si possible en .NET (VB, c# etc.) avoir accès aux déplacements de la souris. Je parle bien des impulsions que lance régulièrement la souris à l'OS et pas du déplacement du pointeur sur l'écran qui lui est irrégulier.
Merci
Iffefroi
Je voudrais, par un moyen ou un autre, si possible en .NET (VB, c# etc.) avoir accès aux déplacements de la souris. Je parle bien des impulsions que lance régulièrement la souris à l'OS et pas du déplacement du pointeur sur l'écran qui lui est irrégulier.
Merci
Iffefroi
A voir également:
- Récupérer les impulsions de la souris
- Comment récupérer les messages supprimés sur whatsapp - Guide
- Quelle touche pour débloquer la souris ? - Guide
- Récupérer mon compte facebook désactivé - Guide
- Comment recuperer une video sur youtube - Guide
- Impossible de récupérer mon compte gmail - Guide
14 réponses
salut
fais une recherche sur les hooks, qui permet de capter tous les messages de la souris.
comme "hook souris" dans google
fais une recherche sur les hooks, qui permet de capter tous les messages de la souris.
comme "hook souris" dans google
Merci Edoc
Ca me donne une nouvelle orientation dans mes recherches.
Je tiens le forum au courant
Iffefroi
Ca me donne une nouvelle orientation dans mes recherches.
Je tiens le forum au courant
Iffefroi
Merci pour ta proposition Edoc mais finalement j'ai regardé :
Un hook permet de voir les données que windows envoie aux applications.
Le problème c'est que c'est windows qui gère le pointeur de la souris, donc il envoie aux applications les coordonnées du pointeur et pas les déplacements de la souris.
Il y a 2 hook possible :
WH_MOUSE
WH_MOUSE_LL (low level)
Et même le bas niveau ne peux renvoyer que les coordonnées du pointeur, en ce qui concerne le mouvement.
Donc si tu as une bonne idée, ou si quelqu'un en a une ?
Merci
Iffefroi
Un hook permet de voir les données que windows envoie aux applications.
Le problème c'est que c'est windows qui gère le pointeur de la souris, donc il envoie aux applications les coordonnées du pointeur et pas les déplacements de la souris.
Il y a 2 hook possible :
WH_MOUSE
WH_MOUSE_LL (low level)
Et même le bas niveau ne peux renvoyer que les coordonnées du pointeur, en ce qui concerne le mouvement.
Donc si tu as une bonne idée, ou si quelqu'un en a une ?
Merci
Iffefroi
RE-bonjour
Je voudrais toujours avoir accès aux impulsions de ma souris.
Mais comme ce ne semble pas possible sous windows, je voudrais bien le faire en C sous Linux. Si quelqu'un peux m'aider un petit peu ? M'orienter dans mes recherches ?
Je rappelle que je veux avoir accès aux déplacements de la souris et non pas au déplacement du curseur. Si possible la souris en USB.
Merci encore
Iffefroi
Je voudrais toujours avoir accès aux impulsions de ma souris.
Mais comme ce ne semble pas possible sous windows, je voudrais bien le faire en C sous Linux. Si quelqu'un peux m'aider un petit peu ? M'orienter dans mes recherches ?
Je rappelle que je veux avoir accès aux déplacements de la souris et non pas au déplacement du curseur. Si possible la souris en USB.
Merci encore
Iffefroi
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour,
Il semblerait qu'il soit possible de récupérer les déplacements de la souris avec /dev/psaux.
Si quelqu'un sait comment celà fonctionne ?
Merci
Il semblerait qu'il soit possible de récupérer les déplacements de la souris avec /dev/psaux.
Si quelqu'un sait comment celà fonctionne ?
Merci
Je sais pas programmer sous linux, mais sous DOS si,
que veux tu faire, peut etre que je pourrais t'aider
que veux tu faire, peut etre que je pourrais t'aider
Ce que je voudrais faire :
Récupérer les données directes de la souris, les vitesses de déplacements.
Afin de récupérer la vitesse de la souris selon x e y.
Je précise bien que c'est la vitesse de la souris que je souhaite et non pas la vitesse du pointeur : la différence réside surtout dans le fait que le taux de rafraichissement est lié à la souris et non pas à l'OS. Une autre différence importante est que lorque le pointeur est au bord de l'écran. La souris peux encore se déplacer alors que le pointeur de la souris est bloqué contre le bord.
Merci
Iffefroi
Récupérer les données directes de la souris, les vitesses de déplacements.
Afin de récupérer la vitesse de la souris selon x e y.
Je précise bien que c'est la vitesse de la souris que je souhaite et non pas la vitesse du pointeur : la différence réside surtout dans le fait que le taux de rafraichissement est lié à la souris et non pas à l'OS. Une autre différence importante est que lorque le pointeur est au bord de l'écran. La souris peux encore se déplacer alors que le pointeur de la souris est bloqué contre le bord.
Merci
Iffefroi
ça j'ai bien compris, mais quel type d'application tu compte faire,
car pour avoir ces informations, tu dois programmer directement le controleur de la souris (c'est le meme que celui du clavier) ports 60h,61h et 64h, la souris PS/2 est le peripherique auxiliaire et elle utilise l'interruption IRQ 12.
mais si tu compte programmer sous linux ou windows c'est un DRIVER que tu dois developper, alors que sous DOS, un programme (en C,Pascal ou Assembleur) peut faire l'affaire.
sur ce, @+
car pour avoir ces informations, tu dois programmer directement le controleur de la souris (c'est le meme que celui du clavier) ports 60h,61h et 64h, la souris PS/2 est le peripherique auxiliaire et elle utilise l'interruption IRQ 12.
mais si tu compte programmer sous linux ou windows c'est un DRIVER que tu dois developper, alors que sous DOS, un programme (en C,Pascal ou Assembleur) peut faire l'affaire.
sur ce, @+
avec une souris sur port SERIE c'est plus facile que le PS/2
mais, avec une souris USB, il va te falloir programmer aussi le controleur USB (je sais pas comment faire ça) et je crois que c'est la methode la plus difficile.
j'attend que tu m'eclaire plus sur l'application que tu compte developper, ainsi je pourrais mieux te conseiller.
sur ce, @*
mais, avec une souris USB, il va te falloir programmer aussi le controleur USB (je sais pas comment faire ça) et je crois que c'est la methode la plus difficile.
j'attend que tu m'eclaire plus sur l'application que tu compte developper, ainsi je pourrais mieux te conseiller.
sur ce, @*
Pour l'instant, le programme est juste un programme de test. Pour voir si une souris peux être utiliser en tant qu'appareil odomètrique.
Dans un premier temps, je voudrais un petit programme dans n'importe quel language (C, perl, bash, etc) qui permettrait de lire la vitesse de la souris et de l'afficher de manière lisible.
Il serait éventuellement possible d'indiquer un facteur k, qui permettrait de convertir la vitesse en cm/s.
L'application première en elle-même n'est pas utile mais c'est ce qu'on appelle une application de test, pour voir en fonction du support qu'on utilise sous la souris, si la souris peux servir d'appareil odomètrique dans ce cas.
Merci
Iffefroi
Dans un premier temps, je voudrais un petit programme dans n'importe quel language (C, perl, bash, etc) qui permettrait de lire la vitesse de la souris et de l'afficher de manière lisible.
Il serait éventuellement possible d'indiquer un facteur k, qui permettrait de convertir la vitesse en cm/s.
L'application première en elle-même n'est pas utile mais c'est ce qu'on appelle une application de test, pour voir en fonction du support qu'on utilise sous la souris, si la souris peux servir d'appareil odomètrique dans ce cas.
Merci
Iffefroi
hello
si si cherche bien avec les hook, on a les mesages données quand la souris bougfe, et on peut avec chacun récupérer les coordonnées lors du message ;-D
si si cherche bien avec les hook, on a les mesages données quand la souris bougfe, et on peut avec chacun récupérer les coordonnées lors du message ;-D
resalut
- en c il existe bien une fonction getCursorPos qui te donne la position de la souris : il suffit de récupérer les valeurs régulièrment et tu pourras calculer la vitesse : (temps2-temp1) / duree.
tu ne pourras pas avoir directement la vitesse.
---
ca ne peux pas fonctionner juste avec les coordonnées et pas le déplacement ?
- en c il existe bien une fonction getCursorPos qui te donne la position de la souris : il suffit de récupérer les valeurs régulièrment et tu pourras calculer la vitesse : (temps2-temp1) / duree.
tu ne pourras pas avoir directement la vitesse.
---
ca ne peux pas fonctionner juste avec les coordonnées et pas le déplacement ?
Comme je l'ai déjà dit la position du curseur ne m'interresse pas pour plusieurs raisons :
- ils existent GetCursorPos dans presque tous les langages donc j'y suis déjà arrivé à obtenir la position du cureseur.
- le déplacement du curseur s'arrête lorsque tu atteins le bord de l'écran alors que la souris continue à se déplacer.
- la vitesse de reafraichissement est totalement dépendante de l'OS et cette partie n'est pas toujours constante et l'on ne peux rien en déduire.
Je tiens à préciser que sous linux cat /dev/psaux permet de récupérer les données de la souris. Mais malheureusement je n'ai pas encore réussi à déchiffrer correctement les données.
Pour l'instant j'ai juste réussi à en déduire que tous les 6 octets, l'octet a 3 bits correspondant aux 3 boutons de la souris. Le déplacement doit sans doute être donné par les 45 autres bits mais je 'ai pas encore compris comment.
Il semblerait cependant que celà dépend de la souris.
Mais je manque de documentation sur le net. (sisi :) )
Merci
Iffefroi
- ils existent GetCursorPos dans presque tous les langages donc j'y suis déjà arrivé à obtenir la position du cureseur.
- le déplacement du curseur s'arrête lorsque tu atteins le bord de l'écran alors que la souris continue à se déplacer.
- la vitesse de reafraichissement est totalement dépendante de l'OS et cette partie n'est pas toujours constante et l'on ne peux rien en déduire.
Je tiens à préciser que sous linux cat /dev/psaux permet de récupérer les données de la souris. Mais malheureusement je n'ai pas encore réussi à déchiffrer correctement les données.
Pour l'instant j'ai juste réussi à en déduire que tous les 6 octets, l'octet a 3 bits correspondant aux 3 boutons de la souris. Le déplacement doit sans doute être donné par les 45 autres bits mais je 'ai pas encore compris comment.
Il semblerait cependant que celà dépend de la souris.
Mais je manque de documentation sur le net. (sisi :) )
Merci
Iffefroi
resalut,
voila un document qui décrit le fonctionnement:
http://users.tkk.fi/~then/mytexts/mouse.html
voila un document qui décrit le fonctionnement:
http://users.tkk.fi/~then/mytexts/mouse.html
Le document que tu m'a donné et très interressant, mais un petit peu vieux. En effet il ne parle pas de souris USB qui n'existait pas à l'époque ni bien sur de plus de 2 boutons. Mais ce n'est pas grave, il m'a permis d'avancer :
J'ai trouvé la significtion de 2 autres bits parmis mes 6 octets je vais peut être vous détaillé pour que vous puissiez me suivre :
Je rappelle que les résultats obtenus l'ont été avec :
cat /dev/psaux | od -h -w6
==> -h en hexa
==> -w6 par série de 8 octets
Voici les résultats obtenus pour un clic gauche sans déplacement
00 09 08 00 00 00
Le 09 semble être la ligne 1 correspondant a plusieurs norme de souris et correspond à la ligne 1 des souris PS/2.
ligne 1 des PS/2 :
YV XV YS XS 1 M R L
XV, YX indique un overflow sur la souris (je n'ai pas réussi à le reproduire)
XS, YS indique le signe du déplacement :
gauche XS=1 droite XS =0
bas YS = 1 haut YS = 1
Ce sont ses deux bits que j'ai pu vérifier.
M R et L (même si M n'est pas indiqué sur le document je l'ai trouvé sur d'autres descriptifs) sont respectivement les boutons mileu, droit et gauche.
Par contre le souci : c'est que pour une souris PS/2 il y a 3 octets. Ici j'en ai 6 et j'utilise une souris USB (de marque Logitech)
Si quelqu'un sait comment fonctionne une souris USB ?
Merci
Iffefroi
J'ai trouvé la significtion de 2 autres bits parmis mes 6 octets je vais peut être vous détaillé pour que vous puissiez me suivre :
Je rappelle que les résultats obtenus l'ont été avec :
cat /dev/psaux | od -h -w6
==> -h en hexa
==> -w6 par série de 8 octets
Voici les résultats obtenus pour un clic gauche sans déplacement
00 09 08 00 00 00
Le 09 semble être la ligne 1 correspondant a plusieurs norme de souris et correspond à la ligne 1 des souris PS/2.
ligne 1 des PS/2 :
YV XV YS XS 1 M R L
XV, YX indique un overflow sur la souris (je n'ai pas réussi à le reproduire)
XS, YS indique le signe du déplacement :
gauche XS=1 droite XS =0
bas YS = 1 haut YS = 1
Ce sont ses deux bits que j'ai pu vérifier.
M R et L (même si M n'est pas indiqué sur le document je l'ai trouvé sur d'autres descriptifs) sont respectivement les boutons mileu, droit et gauche.
Par contre le souci : c'est que pour une souris PS/2 il y a 3 octets. Ici j'en ai 6 et j'utilise une souris USB (de marque Logitech)
Si quelqu'un sait comment fonctionne une souris USB ?
Merci
Iffefroi