Propriété souris

Signaler
Messages postés
3
Date d'inscription
mardi 7 mars 2006
Statut
Membre
Dernière intervention
5 décembre 2007
-
Messages postés
3874
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
7 novembre 2014
-
Bonjour,

J'ai besoin de rendre ma souris extrèmement lente (5 à 10 fois plus que le réglage proposé dans la fenêtre des propriétés de souris de Windows).
En réalité, il'agit d'utiliser une souris sur une échelle de 12m² environ au lieu des quelques dm² usuels dans le cadre d'une installation interactive (.exe issu de Flash).
D'après certains codes trouvés sur ce site, il semble que l'opération soit réalisable en C++.
ex :
<li> DestroyCursor(GetCursor());
</li><li> SetCursorPos(x2, y2);
</li>

Mais je suis totalement ignorant sur les langages système et je ne vois pas comment adapter les codes.

Quelqu'un pour me donner un coup de main ?

Merci d'avance

2 réponses

Messages postés
3874
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
7 novembre 2014
14
Salut,

Pour changer la vitesse de la souris, on peut passer par SystemParametersInfo en lui passant SPI_SETMOUSESPEED. Mais y a peu de chance que tu puisse bénéficier d'une vitesse plus élevée (A moins que : je compte à peine 10 crans dans les configs de Windows).

Pour ce qui est d'un bricolage, il y a peut être moyen de s'en sortir en interceptant le WM_MOUSEMOVE, et en faisant du SetCursorPos comme tu le proposes. En sauvegardant la position précédente de la souris, y a peut être moyen d'allonger les mouvements.

Style :

GetCursorPos(suivant);
SetCursorPos(precedent.x + (suivant.x - precedent.x) * 3, precedent.y + (suivant.y + precedent.y) * 3);
precedent = suivant;

Mais ça risque d'être très saccadé, et faudrait faire attention à pas partir dans une boucle sans fin :

WM_MOUSEMOVE -> SetCursorPos -> WM_MOUSEMOVE -> SetCursorPos -> WM_MOUSEMOVE -> SetCursorPos...

Bonne chance.
Messages postés
3874
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
7 novembre 2014
14
Ah zut, c'est :
SetCursorPos(precedent.x + (suivant.x - precedent.x) * 3, precedent.y + (suivant.y - precedent.y) * 3);

que je voulais dire.