Windows Vista Tips

Windows Vista Tips > Newsgroups > Windows Vista Drivers > mouse beahvior

Reply
Thread Tools Display Modes

mouse beahvior

 
 
pls123
Guest
Posts: n/a

 
      04-18-2010


Hello !!

i need to make a little change to the normal behavior of the mouse....

the normal relation between mouse movement and pointer is linear..
but i neeed it to be with a little exponential correction:

pointermovement = mousemovement ^1,1 (value at editable user's choice)

this is to have a kind of continuous acceleration,
necessary to have more precision for the pointer at low speed of mouse,
and also more response when making a fast spin ...

what should i do..?

tx paolo ita

 
Reply With Quote
 
 
 
 
Doron Holan [MSFT]
Guest
Posts: n/a

 
      04-19-2010
windows already does something similar. while the raw data from the hw is
linear, windows computes mouse movement in a non linear fashion. if you
really think you want to do this, write a mouse upper filter driver and
alter the raw hardware information. remember that there is no floating
point math libraries available to you in the kenrel.

d

--

This posting is provided "AS IS" with no warranties, and confers no rights.


"pls123" <> wrote in message
news:3C0D9BF4-EEBF-4F6C-A680-...
>
>
> Hello !!
>
> i need to make a little change to the normal behavior of the mouse....
>
> the normal relation between mouse movement and pointer is linear..
> but i neeed it to be with a little exponential correction:
>
> pointermovement = mousemovement ^1,1 (value at editable user's choice)
>
> this is to have a kind of continuous acceleration,
> necessary to have more precision for the pointer at low speed of mouse,
> and also more response when making a fast spin ...
>
> what should i do..?
>
> tx paolo ita
>

 
Reply With Quote
 
m
Guest
Posts: n/a

 
      04-21-2010
IIRC a similar algorithm has been implemented by Microsoft and the
parameters are adjustable via control panel -> mouse / registry settings.

"Doron Holan [MSFT]" <> wrote in message
news:ecr0UT#...
> windows already does something similar. while the raw data from the hw is
> linear, windows computes mouse movement in a non linear fashion. if you
> really think you want to do this, write a mouse upper filter driver and
> alter the raw hardware information. remember that there is no floating
> point math libraries available to you in the kenrel.
>
> d
>
> --
>
> This posting is provided "AS IS" with no warranties, and confers no
> rights.
>
>
> "pls123" <> wrote in message
> news:3C0D9BF4-EEBF-4F6C-A680-...
>>
>>
>> Hello !!
>>
>> i need to make a little change to the normal behavior of the mouse....
>>
>> the normal relation between mouse movement and pointer is linear..
>> but i neeed it to be with a little exponential correction:
>>
>> pointermovement = mousemovement ^1,1 (value at editable user's choice)
>>
>> this is to have a kind of continuous acceleration,
>> necessary to have more precision for the pointer at low speed of mouse,
>> and also more response when making a fast spin ...
>>
>> what should i do..?
>>
>> tx paolo ita
>>

 
Reply With Quote
 
USH
Guest
Posts: n/a

 
      05-14-2010
Hi sorry for the delay..
there was a problem with EMail notification...

tx Doron for help but i don't have any idea about how to procede in that way
!!

i could follow the way suggested by m ,
but i have no link to the registry in my vista control panel / mouse ...

perhaps because i have intellipoint panel installed, but it should add
things and not hide others !!

i heard by a friend about making a mouse hook..
should i study for it ??
tx for any suggestion !!


"pls123" wrote:

>
>
> Hello !!
>
> i need to make a little change to the normal behavior of the mouse....
>
> the normal relation between mouse movement and pointer is linear..
> but i neeed it to be with a little exponential correction:
>
> pointermovement = mousemovement ^1,1 (value at editable user's choice)
>
> this is to have a kind of continuous acceleration,
> necessary to have more precision for the pointer at low speed of mouse,
> and also more response when making a fast spin ...
>
> what should i do..?
>
> tx paolo ita
>

 
Reply With Quote
 
Ray Trent
Guest
Posts: n/a

 
      05-21-2010
On 4/19/2010 10:21 AM, Doron Holan [MSFT] wrote:
> you really think you want to do this, write a mouse upper filter driver
> and alter the raw hardware information. remember that there is no
> floating point math libraries available to you in the kenrel.


Unfortunately, this advice isn't entirely possible to actually implement. The function Windows uses
is non-reversible, optimized for mice only, and has some really quirky and subtle bugs/"features"
that I've tried to get fixed in the past with little success.

Perhaps the most obvious of the difficulties is that you can only send integer amounts of motion in
X and Y, and that quantization is amplified by the Windows transfer functions in non-reversible
ways. You also can't just send a whole bunch of single mickey movements because of some bugs in the
way Windows tries to compensate for mouse report rates (I suspect, though of course that's very hard
to prove without looking at the source), and due to at least one bug I suspect to be a simple
rounding or overflow error involving small motions specifically in the up & left directions.

The only way to *really* "do what you want" (assuming that's actually a desirable goal here) is to
have your filter suppress *all* reports, send its packets up to a usermode service that can query
the position of the pointer, and update it itself to the absolute position on the screen where it
calculates it wants it. Even that doesn't work perfectly, because there's no atomic way to
relatively move the cursor other than through the Windows ballistics. Also, you can't use the
absolute mode interface in the kernel because people can hork the pointer around the screen under
software control and there's no way to query the position from the kernel.

I've always found it easier to just live with the Windows mouse ballistics, even though there are
several cases where I feel I could improve on them when using non-mouse devices (like pointing
sticks and touchpads) having different usage models and constraints.
--
Ray
 
Reply With Quote
 
USH
Guest
Posts: n/a

 
      06-28-2010

the purpouse was for gaming but not only..
the behavior desired was a linear acceleration under and over any threshold..

games get the pointing signal form i dontknowhow.. bypassing the windows
mouse control panel processing like acceleration..

i heard about a mouse hook..

anyway i use a microsft trackball explorer...
when will it be back to production again!!
im starting to be afraid for some crash of my one..
byby!!



"Ray Trent" wrote:

> On 4/19/2010 10:21 AM, Doron Holan [MSFT] wrote:
> > you really think you want to do this, write a mouse upper filter driver
> > and alter the raw hardware information. remember that there is no
> > floating point math libraries available to you in the kenrel.

>
> Unfortunately, this advice isn't entirely possible to actually implement. The function Windows uses
> is non-reversible, optimized for mice only, and has some really quirky and subtle bugs/"features"
> that I've tried to get fixed in the past with little success.
>
> Perhaps the most obvious of the difficulties is that you can only send integer amounts of motion in
> X and Y, and that quantization is amplified by the Windows transfer functions in non-reversible
> ways. You also can't just send a whole bunch of single mickey movements because of some bugs in the
> way Windows tries to compensate for mouse report rates (I suspect, though of course that's very hard
> to prove without looking at the source), and due to at least one bug I suspect to be a simple
> rounding or overflow error involving small motions specifically in the up & left directions.
>
> The only way to *really* "do what you want" (assuming that's actually a desirable goal here) is to
> have your filter suppress *all* reports, send its packets up to a usermode service that can query
> the position of the pointer, and update it itself to the absolute position on the screen where it
> calculates it wants it. Even that doesn't work perfectly, because there's no atomic way to
> relatively move the cursor other than through the Windows ballistics. Also, you can't use the
> absolute mode interface in the kernel because people can hork the pointer around the screen under
> software control and there's no way to query the position from the kernel.
>
> I've always found it easier to just live with the Windows mouse ballistics, even though there are
> several cases where I feel I could improve on them when using non-mouse devices (like pointing
> sticks and touchpads) having different usage models and constraints.
> --
> Ray
> .
>

 
Reply With Quote
 
Maxim S. Shatskih
Guest
Posts: n/a

 
      06-28-2010
> games get the pointing signal form i dontknowhow.. bypassing the windows
> mouse control panel processing like acceleration..


DirectInput?

--
Maxim S. Shatskih
Windows DDK MVP

http://www.storagecraft.com

 
Reply With Quote
 
Doron Holan [MSFT]
Guest
Posts: n/a

 
      06-28-2010
directinput uses HID as well

"Maxim S. Shatskih" wrote in message
news:...

> games get the pointing signal form i dontknowhow.. bypassing the windows
> mouse control panel processing like acceleration..


DirectInput?

--
Maxim S. Shatskih
Windows DDK MVP

http://www.storagecraft.com

 
Reply With Quote
 
 
 
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Problem Microsoft Wireless Laser Mouse 8000 - Bluetooth mark Windows Vista Hardware 13 04-08-2010 05:27 PM
Vista32, new driver? & USB Mouse/Keyboard not working Scott J. Stringfellow Windows Vista Hardware 27 04-01-2010 05:22 PM
Mouse pointer not aligned denmarfl Windows Vista General Discussion 30 03-12-2010 08:56 PM
USB mouse pointer freeze Stephen Windows Vista Hardware 4 05-13-2009 08:58 AM
USB Browser Mouse Driver Error bulb005 Windows Vista Hardware 25 04-17-2009 03:54 PM



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59