Super User Asked on December 3, 2021
I’ve had an extremely bad experience with Razer Synapse, because it causes constant and random BSOD’s on my computer. I use a sensitivity clutch for one of my macro buttons, but when the Synapse service isn’t running, the sensitivity clutch doesn’t work properly. I tried X-Mouse Button Control, but it doesn’t have support for additional buttons. Is there any way to get full macro capabilities without having Synapse installed?
What I did was temporarily install Synapse to create an onboard profile for the mouse. I assigned the 7 macro keys to F13-F19 respectively, and saved it to the mouse. Now, when I press the macro buttons, it fires one of the corresponding function keys.
Then, to handle the macros, I use AutoHotKey. I have a simple script running that handles and remaps the function keys. If you're looking to use a sensitivity clutch like I did, someone made a lovely script on the AutoHotKey forums that did exactly what I needed.
I modified it for my own purposes to act as a clutch instead of a toggle:
;=================================================================================
NormalMouseSpeed := true ; State of Mouse pointer speed
UserMouseSpeed := 0 ; Speed sensed before slow down
MouseThreshold1 := 6
MouseThreshold2 := 10
MouseEnhance := 1
;Set this to true if you need to debug (or just want to show tooltips)
ShowTooltips := false
SPI_GETMOUSESPEED := 0x70
SPI_SETMOUSESPEED := 0x71
SPI_SETMOUSE := 0x04
;=================================================================================
*F18::
throttleMouseSpeed(1)
return
*F18 UP::
unThrottleMouseSpeed()
return
;=================================================================================
throttleMouseSpeed(SlowMouseSpeed) {
global
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)
if (ShowTooltips) {
ToolTip, Mouse slow: %currentSpeed%/20
SetTimer, RemoveToolTip, 1000
}
; REMEMBER CURRENT STATE
NormalMouseSpeed := false
}
}
unThrottleMouseSpeed(){
global
; 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)
if (ShowTooltips) {
ToolTip, Mouse restored: %currentSpeed%/20
SetTimer, RemoveToolTip, 1000
}
; REMEMBER CURRENT STATE
NormalMouseSpeed := true
}
Answered by Drakinite on December 3, 2021
Get help from others!
Recent Answers
Recent Questions
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP