Results 1 to 3 of 3

Thread: [VB6] How To Set Mouse Speed?

Threaded View

  1. #2
    Fanatic Member
    Join Date
    Jul 2009
    Posts
    629

    Re: [VB6] How To Set Mouse Speed?

    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
    Code:
            Dim mousespeed As Integer = SPI.GetParameter(SPI.GetActions.MOUSESPEED)
            SPI.SetParameter(SPI.SetActions.MOUSESPEED, 17)
    This was .NET, for vb6 you will need something similar. All you need is the constant (SETMOUSESPEED/GETMOUSESPEED) plus the API definition:
    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)
    Code:
    Dim speed As Integer
    SystemParametersInfoGet(GETMOUSESPEED, 0, speed, 0)
    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.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  



Click Here to Expand Forum to Full Width