Можно в цикле проверять включена ли акселерация и если включена - отключать ее.
loop
{
SPI_GETMOUSE(accel, low, high)
if accel
SPI_SETMOUSE(!accel)
sleep 200
}
return
; Get mouse acceleration level and low/high thresholds.
; Returns true on success and false on failure.
SPI_GETMOUSE(ByRef accel, ByRef low="", ByRef high="")
{
VarSetCapacity(vValue, 12)
if !DllCall("SystemParametersInfo", "uint", 3, "uint", 0, "uint", &vValue, "uint", 0)
return false ; Fail.
low := NumGet(vValue, 0)
high := NumGet(vValue, 4)
accel := NumGet(vValue, 8)
return true
}
; Set mouse acceleration level and low/high thresholds.
; Supplies standard default values for low/high if omitted.
; fWinIni: 0 or one of the following values:
; 1 to update the user profile
; 2 to notify applications
; 3 to do both.
; Returns true on success and false on failure.
SPI_SETMOUSE(accel, low="", high="", fWinIni=3)
{
VarSetCapacity(vValue, 12)
, NumPut(accel
, NumPut(high!="" ? high : accel ? 10 : 0
, NumPut(low!="" ? low : accel ? 6 : 0, vValue)))
return 0!=DllCall("SystemParametersInfo", "uint", 4, "uint", 0, "uint", &vValue, "uint", fWinIni)
}