:li
Option Explicit

Const SHCNF_IDLIST = &H0
Const SHCNE_ALLEVENTS = &H7FFFFFFF

Const HWND_BROADCAST = &HFFFF&
Const WM_SETTINGCHANGE = &H1A&

Private Declare Function SystemParametersInfoS Lib "user32" Alias "SystemParametersInfoA" (ByVal uAction As Long, ByVal uParam As Long, ByVal lpvParam As String, ByVal fuWinINI As Long) As Long
Private Declare Function SystemParametersInfoL Lib "user32" Alias "SystemParametersInfoA" (ByVal uAction As Long, ByVal uParam As Long, ByVal lpvParam As Long, ByVal fuWinINI As Long) As Long

Public Function ChangeSetting(ByVal action As Long, param1 As Variant, param2 As Variant, Optional ByVal mode As Long = 1) As Boolean
    If VarType(param2) = 8 Then
        ChangeSetting = SystemParametersInfoS(action, param1, param2, mode)
    Else
        ChangeSetting = SystemParametersInfoL(action, CLng(param1), param2, mode)
    End If
End Function