VMware Communities
ryansebiz
Contributor
Contributor
Jump to solution

Pointer Options > Select a pointer speed

Everytime I restart my VMware (Easy) Windows XP SP3 install, my mouse is incredibly slow.

I have to go to Control Panel > Mouse > Pointer Options > Select a pointer speed > and set it to Fast

I have to do this each time I restart Windows.

How can I make this setting stick?

0 Kudos
1 Solution

Accepted Solutions
WoodyZ
Immortal
Immortal
Jump to solution

If for some reason the Mouse Speed will not survive a reboot here is a work-a-round...

The attached file Set_Mouse_Speed.zip contains three files, SetMouseSpeed.exe, (Program Executable) Set_Mouse_Speed.bas (Source Code) and HKCU_Run.reg Windows Registry file to set SetMouseSpeed.exe to execute during User Login.

After setting the speed you desire open the Windows Registry Editor (Click Start > Run... > type regedit and click OK or press Enter) and navigate to "HKEY_CURRENT_USER\Control Panel\Mouse" and look at the value of "MouseSensitivity" and it will be between 1 and 20.

Open for Edit (right-click > Edit) the HKCU_Run.reg file and set the number to match what's in the Windows Registry and then save it and then double-click the HKCU_Run.reg file and say Yes on the ensuing message box. This will set the information into the Windows Registry at "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run" and remove the previously posted key value "Mouse Pointer Speed".

Copy the SetMouseSpeed.exe file to the C:\Windows Folder.

Now every time you start or switch to that User on that Virtual Machine the Mouse Speed will be set to the speed you wanted.

Note: The path to the Windows Folder in HKCU_Run.reg is c:\windows and if that is different on your system then edit the HKCU_Run.reg accordingly or if you want to place the SetMouseSpeed.exe file in a different location then make the necessary path change.

If you want the Mouse Speed to be Global (the same for all Users) then change "HKEY_CURRENT_USER" to "HKEY_LOCAL_MACHINE" in the HKCU_Run.reg file before executing it.

Note: If SetMouseSpeed.exe is executed without a command line argument the speed is set to default value of 10. Valid values are numeric 1 to 20. Example SetMouseSpeed.exe 20 sets the mouse speed to its fastest.

File Attached: Set_Mouse_Speed.zip

Message was edited by: WoodyZ

Note: I didn't like uploading something that didn't properly validate the command line argument so I added code to validate Command Line Argument as Numeric 1 to 20.

Replaced previous post with new information and attachment.

Message was edited by: WoodyZ

View solution in original post

0 Kudos
7 Replies
rcardona2k
Immortal
Immortal
Jump to solution

That setting sticks on my copy of Windows XP SP3. The slider for Motion speed appears to be stored in the registry under HKCU\Control Panel\Mouse\MouseSensitivity where Slow is 1 and Fast is 20. Check the registry to make sure your setting is saved and on reboot what is it reset to?

0 Kudos
WoodyZ
Immortal
Immortal
Jump to solution

If for some reason the Mouse Speed will not survive a reboot here is a work-a-round...

The attached file Set_Mouse_Speed.zip contains three files, SetMouseSpeed.exe, (Program Executable) Set_Mouse_Speed.bas (Source Code) and HKCU_Run.reg Windows Registry file to set SetMouseSpeed.exe to execute during User Login.

After setting the speed you desire open the Windows Registry Editor (Click Start > Run... > type regedit and click OK or press Enter) and navigate to "HKEY_CURRENT_USER\Control Panel\Mouse" and look at the value of "MouseSensitivity" and it will be between 1 and 20.

Open for Edit (right-click > Edit) the HKCU_Run.reg file and set the number to match what's in the Windows Registry and then save it and then double-click the HKCU_Run.reg file and say Yes on the ensuing message box. This will set the information into the Windows Registry at "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run" and remove the previously posted key value "Mouse Pointer Speed".

Copy the SetMouseSpeed.exe file to the C:\Windows Folder.

Now every time you start or switch to that User on that Virtual Machine the Mouse Speed will be set to the speed you wanted.

Note: The path to the Windows Folder in HKCU_Run.reg is c:\windows and if that is different on your system then edit the HKCU_Run.reg accordingly or if you want to place the SetMouseSpeed.exe file in a different location then make the necessary path change.

If you want the Mouse Speed to be Global (the same for all Users) then change "HKEY_CURRENT_USER" to "HKEY_LOCAL_MACHINE" in the HKCU_Run.reg file before executing it.

Note: If SetMouseSpeed.exe is executed without a command line argument the speed is set to default value of 10. Valid values are numeric 1 to 20. Example SetMouseSpeed.exe 20 sets the mouse speed to its fastest.

File Attached: Set_Mouse_Speed.zip

Message was edited by: WoodyZ

Note: I didn't like uploading something that didn't properly validate the command line argument so I added code to validate Command Line Argument as Numeric 1 to 20.

Replaced previous post with new information and attachment.

Message was edited by: WoodyZ

0 Kudos
ryansebiz
Contributor
Contributor
Jump to solution

Thanks WoodyZ. Unfortunately the problem persists after running through your instructions twice.

As you can see from the pic, after I reboot the registry shows a sensitivity of 20 but Pointer Options shows only medium speed.

Any other ideas I can try?

0 Kudos
WoodyZ
Immortal
Immortal
Jump to solution

Okay it turns out that when changing that value (like many but not all values in the registry) the change has to be flushed so I quickly wrote a program that will do it properly for you. Have look back at my original post as I have replaced the original with new information and attachment.

Sorry didn't have Visual C loaded so I did it in Visual Basic 6 since I had it in a Virtual Machine and the VB6 Runtime is included in XP so all you need is the .exe that's in the .zip.

Enjoy! Smiley Happy

Woody

0 Kudos
ryansebiz
Contributor
Contributor
Jump to solution

Thanks so much WoodyZ - it works!

0 Kudos
polocanada
Contributor
Contributor
Jump to solution

Woody,

I think my response should be in a new post, but I am wondering if it's possible to modify the executable so that it also sets the "Enhance Pointer Precission" setting to SELECT. Running Vista.

Thank you. Polo

===========

I believe the mouse sensitivity setting is "MouseSpeed"="1" or "MouseSpeed"="0".

"ActiveWindowTracking"=dword:00000000

"Beep"="No"

"DoubleClickHeight"="4"

"DoubleClickSpeed"="500"

"DoubleClickWidth"="4"

"ExtendedSounds"="No"

"MouseHoverHeight"="4"

"MouseHoverTime"="400"

"MouseHoverWidth"="4"

"MouseSensitivity"="20"

"MouseSpeed"="1"

"MouseThreshold1"="6"

"MouseThreshold2"="10"

"MouseTrails"="0"

"SmoothMouseXCurve"=hex:00,00,00,00,00,00,00,00,15,6e,00,00,00,00,00,00,00,40,\

01,00,00,00,00,00,29,dc,03,00,00,00,00,00,00,00,28,00,00,00,00,00

"SmoothMouseYCurve"=hex:00,00,00,00,00,00,00,00,b8,5e,01,00,00,00,00,00,cd,4c,\

05,00,00,00,00,00,cd,4c,18,00,00,00,00,00,00,00,38,02,00,00,00,00

"SnapToDefaultButton"="0"

"SwapMouseButtons"="0"

0 Kudos
WoodyZ
Immortal
Immortal
Jump to solution

I am wondering if it's possible to modify the executable so that it also sets the "Enhance Pointer Precission" setting to SELECT. Running Vista.

Well just about anything is possible however if you look at the source code included in the .zip you'll see that this program was explicitly and specifically written to address only one parameter and modifying it to accommodate anything else would require a total rewrite so it's really not practical nor do I have the time to do it. The situation of the OP was a quick and easy work-a-round to his problem and took longer to write the replies then the program itself.

I believe the mouse sensitivity setting is "MouseSpeed"="1" or "MouseSpeed"="0".

When a User clears the Enhance pointer precision check box, and then clicks OK there are three flags set specific to that.

[HKEY_CURRENT_USER\Control Panel\Mouse]
"MouseSpeed"="1"
"MouseThreshold1"="6"
"MouseThreshold2"="10"

Also I do not see an SystemParametersInfo() Function SPI Constant for this and would have to research it however again I do not have the time to do it.

Also your issue like the OP's I do not see as a Fusion issue since the behavior is reproducible on a physical machine so you might want to check out some of the programming message boards and see if someone might be willing to write you a program to handle you issue.

0 Kudos