Hi,
I actually need to change the mouse speed.
Basically I need to do something what can be done in "Control Panel/MouseProperties/Pointer Options/Motion/select a poiter speed" , but from VB6 code.
Can anybody help me?
Thanks a lot,
Printable View
Hi,
I actually need to change the mouse speed.
Basically I need to do something what can be done in "Control Panel/MouseProperties/Pointer Options/Motion/select a poiter speed" , but from VB6 code.
Can anybody help me?
Thanks a lot,
See the SPI API. I have the class in my API.vb file:
Code:Public Class SPI
<System.Runtime.InteropServices.DllImport("User32.dll", EntryPoint:="SystemParametersInfo")> _
Private Shared Function SystemParametersInfoGet(ByVal uAction As SPI.GetActions, ByVal uiParam As UInt32, ByRef pvParam As IntPtr, ByVal fuWinIni As UInt32) As Boolean
End Function
<System.Runtime.InteropServices.DllImport("User32.dll", EntryPoint:="SystemParametersInfo")> _
Private Shared Function SystemParametersInfoSet(ByVal uAction As SPI.SetActions, ByVal uiParam As UInt32, ByVal pvParam As IntPtr, ByVal fuWinIni As UInt32) As Boolean
End Function
Public Enum GetActions As UInt32
ICONHORIZONTALSPACING = &HD
ICONVERTICALSPACING = &H18
BEEP = &H1
MOUSE = &H3
BORDER = &H5
KEYBOARDSPEED = &HA
SCREENSAVETIMEOUT = &HE
SCREENSAVEACTIVE = &H10
GRIDGRANULARITY = &H12
KEYBOARDDELAY = &H16
ICONTITLEWRAP = &H19
MENUDROPALIGNMENT = &H1B
ICONTITLELOGFONT = &H1F
FASTTASKSWITCH = &H23
DRAGFULLWINDOWS = &H26
NONCLIENTMETRICS = &H29
MINIMIZEDMETRICS = &H2B
ICONMETRICS = &H2D
WORKAREA = &H30
HIGHCONTRAST = &H42
KEYBOARDPREF = &H44
SCREENREADER = &H46
ANIMATION = &H48
FONTSMOOTHING = &H4A
LOWPOWERTIMEOUT = &H4F
POWEROFFTIMEOUT = &H50
LOWPOWERACTIVE = &H53
POWEROFFACTIVE = &H54
DEFAULTINPUTLANG = &H59
WINDOWSEXTENSION = &H5C
MOUSETRAILS = &H5E
FILTERKEYS = &H32
TOGGLEKEYS = &H34
MOUSEKEYS = &H36
SHOWSOUNDS = &H38
STICKYKEYS = &H3A
ACCESSTIMEOUT = &H3C
SERIALKEYS = &H3E
SOUNDSENTRY = &H40
SNAPTODEFBUTTON = &H5F
MOUSEHOVERWIDTH = &H62
MOUSEHOVERHEIGHT = &H64
MOUSEHOVERTIME = &H66
WHEELSCROLLLINES = &H68
MENUSHOWDELAY = &H6A
WHEELSCROLLCHARS = &H6C
SCREENSAVERRUNNING = &H72
MOUSESPEED = &H70
DESKWALLPAPER = &H73
AUDIODESCRIPTION = &H74
SCREENSAVESECURE = &H76
SHOWIMEUI = &H6E
ACTIVEWINDOWTRACKING = &H1000
MENUANIMATION = &H1002
COMBOBOXANIMATION = &H1004
LISTBOXSMOOTHSCROLLING = &H1006
GRADIENTCAPTIONS = &H1008
KEYBOARDCUES = &H100A
MENUUNDERLINES = KEYBOARDCUES
ACTIVEWNDTRKZORDER = &H100C
HOTTRACKING = &H100E
MENUFADE = &H1012
SELECTIONFADE = &H1014
TOOLTIPANIMATION = &H1016
TOOLTIPFADE = &H1018
CURSORSHADOW = &H101A
MOUSESONAR = &H101C
MOUSECLICKLOCK = &H101E
MOUSEVANISH = &H1020
FLATMENU = &H1022
DROPSHADOW = &H1024
BLOCKSENDINPUTRESETS = &H1026
UIEFFECTS = &H103E
DISABLEOVERLAPPEDCONTENT = &H1040
CLIENTAREAANIMATION = &H1042
CLEARTYPE = &H1048
SPEECHRECOGNITION = &H104A
FOREGROUNDLOCKTIMEOUT = &H2000
ACTIVEWNDTRKTIMEOUT = &H2002
FOREGROUNDFLASHCOUNT = &H2004
CARETWIDTH = &H2006
MOUSECLICKLOCKTIME = &H2008
FONTSMOOTHINGTYPE = &H200A
FONTSMOOTHINGCONTRAST = &H200C
FOCUSBORDERWIDTH = &H200E
FOCUSBORDERHEIGHT = &H2010
FONTSMOOTHINGORIENTATION = &H2012
MINIMUMHITRADIUS = &H2014
MESSAGEDURATION = &H2016
End Enum
Public Enum SetActions As UInt32
BEEP = &H2
MOUSE = &H4
BORDER = &H6
KEYBOARDSPEED = &HB
SCREENSAVETIMEOUT = &HF
SCREENSAVEACTIVE = &H11
GRIDGRANULARITY = &H13
DESKWALLPAPER = &H14
DESKPATTERN = &H15
KEYBOARDDELAY = &H17
ICONTITLEWRAP = &H1A
MENUDROPALIGNMENT = &H1C
DOUBLECLKWIDTH = &H1D
DOUBLECLKHEIGHT = &H1E
DOUBLECLICKTIME = &H20
MOUSEBUTTONSWAP = &H21
ICONTITLELOGFONT = &H22
FASTTASKSWITCH = &H24
DRAGFULLWINDOWS = &H25
NONCLIENTMETRICS = &H2A
MINIMIZEDMETRICS = &H2C
ICONMETRICS = &H2E
WORKAREA = &H2F
PENWINDOWS = &H31
HIGHCONTRAST = &H43
KEYBOARDPREF = &H45
SCREENREADER = &H47
ANIMATION = &H49
FONTSMOOTHING = &H4B
DRAGWIDTH = &H4C
DRAGHEIGHT = &H4D
HANDHELD = &H4E
LOWPOWERTIMEOUT = &H51
POWEROFFTIMEOUT = &H52
LOWPOWERACTIVE = &H55
POWEROFFACTIVE = &H56
CURSORS = &H57
ICONS = &H58
DEFAULTINPUTLANG = &H5A
LANGTOGGLE = &H5B
MOUSETRAILS = &H5D
SCREENSAVERRUNNING = &H61
FILTERKEYS = &H33
TOGGLEKEYS = &H35
MOUSEKEYS = &H37
SHOWSOUNDS = &H39
STICKYKEYS = &H3B
ACCESSTIMEOUT = &H3D
SERIALKEYS = &H3F
SOUNDSENTRY = &H41
SNAPTODEFBUTTON = &H60
MOUSEHOVERWIDTH = &H63
MOUSEHOVERHEIGHT = &H65
MOUSEHOVERTIME = &H67
WHEELSCROLLLINES = &H69
MENUSHOWDELAY = &H6B
WHEELSCROLLCHARS = &H6D
SHOWIMEUI = &H6F
MOUSESPEED = &H71
AUDIODESCRIPTION = &H75
SCREENSAVESECURE = &H77
ACTIVEWINDOWTRACKING = &H1001
MENUANIMATION = &H1003
COMBOBOXANIMATION = &H1005
LISTBOXSMOOTHSCROLLING = &H1007
GRADIENTCAPTIONS = &H1009
KEYBOARDCUES = &H100B
MENUUNDERLINES = KEYBOARDCUES
ACTIVEWNDTRKZORDER = &H100D
HOTTRACKING = &H100F
MENUFADE = &H1013
SELECTIONFADE = &H1015
TOOLTIPANIMATION = &H1017
TOOLTIPFADE = &H1019
CURSORSHADOW = &H101B
MOUSESONAR = &H101D
MOUSECLICKLOCK = &H101F
MOUSEVANISH = &H1021
FLATMENU = &H1023
DROPSHADOW = &H1025
BLOCKSENDINPUTRESETS = &H1027
UIEFFECTS = &H103F
DISABLEOVERLAPPEDCONTENT = &H1041
CLIENTAREAANIMATION = &H1043
CLEARTYPE = &H1049
SPEECHRECOGNITION = &H104B
FOREGROUNDLOCKTIMEOUT = &H2001
ACTIVEWNDTRKTIMEOUT = &H2003
FOREGROUNDFLASHCOUNT = &H2005
CARETWIDTH = &H2007
MOUSECLICKLOCKTIME = &H2009
FONTSMOOTHINGTYPE = &H200B
FONTSMOOTHINGCONTRAST = &H200D
FOCUSBORDERWIDTH = &H200F
FOCUSBORDERHEIGHT = &H2011
FONTSMOOTHINGORIENTATION = &H2013
MINIMUMHITRADIUS = &H2015
MESSAGEDURATION = &H2017
End Enum
Public Enum FontSmoothing As Int32
STANDARD = &H1
CLEARTYPE = &H2
DOCKING = &H8000
End Enum
Public Enum FontSmoothingOrientation As Int32
BGR = &H0
RGB = &H1
End Enum
Public Shared Function SetParameter(ByVal parameter As SetActions, ByVal uparam As UInteger, ByVal pvParam As IntPtr) As Boolean
Return SystemParametersInfoSet(parameter, uparam, pvParam, 1)
End Function
Public Shared Function SetParameter(ByVal parameter As SetActions, ByVal pvParam As IntPtr) As Boolean
Return SetParameter(parameter, 0, pvParam)
End Function
Public Shared Function GetParameter(ByVal parameter As GetActions) As IntPtr
SystemParametersInfoGet(parameter, 0, GetParameter, 0)
End Function
End Class
This was .NET, for vb6 you will need something similar. All you need is the constant (SETMOUSESPEED/GETMOUSESPEED) plus the API definition:Code:Dim mousespeed As Integer = SPI.GetParameter(SPI.GetActions.MOUSESPEED)
SPI.SetParameter(SPI.SetActions.MOUSESPEED, 17)
Code:<System.Runtime.InteropServices.DllImport("User32.dll", EntryPoint:="SystemParametersInfo")> _
Private Shared Function SystemParametersInfoGet(ByVal uAction As UInt32, ByVal uiParam As UInt32, ByRef pvParam As IntPtr, ByVal fuWinIni As UInt32) As Boolean
End Function
<System.Runtime.InteropServices.DllImport("User32.dll", EntryPoint:="SystemParametersInfo")> _
Private Shared Function SystemParametersInfoSet(ByVal uAction As UInt32, ByVal uiParam As UInt32, ByVal pvParam As IntPtr, ByVal fuWinIni As UInt32) As Boolean
End Function
Code:const SETMOUSESPEED = &H71
#define SETMOUSESPEED = 0x0071
const GETMOUSESPEED = &H70
#define GETMOUSESPEED = 0x0070
Code:SystemParametersInfoSet(SETMOUSESPEED, 0, [speed], 1)
The last parameter (fuWinIni) is a boolean integer that sets whether or not the OS needs to do an update. For set operations this is usually 1 (true) and 0 (false) for get operations.Code:Dim speed As Integer
SystemParametersInfoGet(GETMOUSESPEED, 0, speed, 0)