Class _MouseSpeed { Get:=DynaCall("SystemParametersInfo",["uiuiui*ui",3],SPI_GETMOUSESPEED := 0x70) Set:=DynaCall("SystemParametersInfo",["uiuitui",3],SPI_SETMOUSESPEED := 0x71) } ms := new _MouseSpeed ms.get[OrigMouseSpeed] ; get origial mouse speed InputBox,NewSpeed,Enter New Mouse Speed,Current Speed: %OrigMouseSpeed% ms.set[NewSpeed] ; set/write new speed ms.get[OrigMouseSpeed] ; get/read new speed MsgBox New Speed was changed to %OrigMouseSpeed%
Adjusting Mouse Sensitivity via hotkey
Something to share on the subject with a simple script to toggle between low and user sensitivity:
; Autohotkey script "Toggle Mouse sensitivity" ;================================================================================= SlowMouseSpeed := 1 NormalMouseSpeed := true ; State of Mouse pointer speed UserMouseSpeed := 0 ; Speed sensed before slow down MouseThreshold1 := 6 MouseThreshold2 := 10 MouseEnhance := 1 SPI_GETMOUSESPEED := 0x70 SPI_SETMOUSESPEED := 0x71 SPI_SETMOUSE := 0x04 ;================================================================================= *F17:: toggleMouseSpeed() ;================================================================================= toggleMouseSpeed() { global ; SET LOW SPEED if( NormalMouseSpeed ) { ; SENSE BEFORE DllCall("SystemParametersInfo", UInt,SPI_GETMOUSESPEED, UInt,0, UIntP,prevSpeed, UInt,0) ; Temporarily reduces the mouse cursor's speed. ; Retrieve the current speed so that it can be restored later DllCall("SystemParametersInfo", UInt,SPI_GETMOUSESPEED, UInt,0, UIntP,UserMouseSpeed, UInt,0) ; Slow down mouse speed DllCall("SystemParametersInfo", UInt,SPI_SETMOUSESPEED, UInt,0, UInt,SlowMouseSpeed, UInt,0) ; SENSE AFTER DllCall("SystemParametersInfo", UInt,SPI_GETMOUSESPEED, UInt,0, UIntP,currentSpeed, UInt,0) ToolTip, Mouse slow: %currentSpeed%/20 ; REMEMBER CURRENT STATE NormalMouseSpeed := false } ; RESTORE SPEED else { ; SENSE BEFORE DllCall("SystemParametersInfo", UInt,SPI_GETMOUSESPEED, UInt,0, UIntP,prevSpeed, UInt,0) ; Restore the original speed. DllCall("SystemParametersInfo", UInt, SPI_SETMOUSESPEED, UInt,0, UInt,UserMouseSpeed, UInt,0) ; Restore the original speed acceleration thresholds and speed VarSetCapacity(MySet, 32, 0) InsertInteger(MouseThreshold1, MySet, 0) InsertInteger(MouseThreshold2, MySet, 4) InsertInteger(MouseEnhance , MySet, 8) DllCall("SystemParametersInfo", UInt,SPI_SETMOUSE, UInt,0, Str,MySet, UInt,1) ; SENSE AFTER DllCall("SystemParametersInfo", UInt,SPI_GETMOUSESPEED, UInt,0, UIntP,currentSpeed, UInt,0) ToolTip, Mouse restored: %currentSpeed%/20 ; REMEMBER CURRENT STATE NormalMouseSpeed := true } SetTimer, RemoveToolTip, 1000 } ;================================================================================= InsertInteger(pInteger, ByRef pDest, pOffset = 0, pSize = 4) { ; Copy each byte in the integer into the structure as raw binary data. Loop %pSize% DllCall("RtlFillMemory", "UInt",&pDest + pOffset + A_Index-1, "UInt", 1, "UChar", pInteger >> 8*(A_Index-1) & 0xFF) } ;================================================================================= RemoveToolTip: SetTimer, RemoveToolTip, Off ToolTip return ;=================================================================================
Problem with that code is that it re-enables mouse acceleration. It doesn't leave your mouse settings untouched when you disable the script again.
I'm looking for a script which will, on a keypress, toggle your mouse sensitivity to maximum, and back to what it was when you press it again. It has to work inside games as well. Anyone have a script which does this?
Hey, after reading through a few posts on anti-recoil for shooters, I was wondering if there is a way to make it where when you move the mouse 1 pixel it moves 2 or 3.
This would allow you to inscrease and decrease the sensitivity very quickly without having to change settings. This could be done with hotkeys, or actually making it enable or disable when you select a weapon.
Say you have a sniper rifle set to key "2" make it when you hit "2" that it turns the script off and goes to normal sensitivity, but when you hit "1" for say an assualt rifle, it will turn the script on and essentially double or tripple the dpi.
Thinking along the lines of base (low sensitivity) being around 300 dpi, making it where it doubles or triples it to 600 to 900, then just bump your base to around 400 would make it go to 800 or 1200. So it would still be very adjustable, if it's possible.
At work now so I don't have time to toy with creating a script, and I'm unsure if you can even modify horizontal mouse movement, but if someone else does I think it may work.
Here's the script I use for working in photoshop etc.
MouseSens := 0 #F8:: MouseSens := !MouseSens ToolTip, % ("Precision: " . ((MouseSens = 1) ? "On" : "Off")) sleep 500 Tooltip return #if MouseSens ~LShift::DllCall("SystemParametersInfo", Int,113, Int,0, UInt,1, Int,2) ~LShift Up::DllCall("SystemParametersInfo", Int,113, Int,0, UInt,10, Int,2) #if
The mouse precision mode is disabled at first when the scripts runs, and can be toggled with Win+F8.
When the mode is enabled, holding left shift sets the mouse speed to 1, releasing left shift sets the speed to 10 (middle of the available range).