# Function Reference

# _WinAPI_SystemParametersInfo

Retrieves or sets the value of one of the system-wide parameters

#include <WinAPISys.au3>
_WinAPI_SystemParametersInfo ( $iAction [, $iParam = 0 [, $vParam = 0 [, $iWinIni = 0]]] )

## Parameters

$iAction | The system-wide parameter to be retrieved or set
$iParam | [optional] A parameter whose usage and format depends on the parameter being queried or set
$vParam | [optional] A parameter whose usage and format depends on the parameter being queried or set
$iWinIni | [optional] If a system parameter is being set, specifies whether the user profile is to be updated, and if so, whether the $WM_SETTINGCHANGE message is to be broadcast. This parameter can be zero if you don't want to update the user profile or it can be one or more of the following values: $SPIF_UPDATEINIFILE - Writes the new setting to the user profile $SPIF_SENDCHANGE - Broadcasts the $WM_SETTINGCHANGE message after updating the user profile Constants are defined in WinAPIsysinfoConstants.au3

## Return Value

Success: | True
Failure: | False, call _WinAPI_GetLastError() to get extended error information

## Remarks

This function always call the Unicode version so $vParam must be inaccordance when using strings.

## See Also

Search SystemParametersInfo in MSDN Library.

## Example

    #include <Array.au3>
    #include <StructureConstants.au3>
    #include <WinAPISys.au3>
    #include <WinAPIsysinfoConstants.au3>

    Local $aArray = GetWorkArea()
    _ArrayDisplay($aArray, _WinAPI_GetSystemMetrics($SM_CXVIRTUALSCREEN) & ', ' & _WinAPI_GetSystemMetrics($SM_CYVIRTUALSCREEN))

    ; Get the working visible area of the desktop, this doesn't include the area covered by the taskbar.
    Func GetWorkArea()
        Local $tWorkArea = DllStructCreate($tagRECT)
        _WinAPI_SystemParametersInfo($SPI_GETWORKAREA, 0, $tWorkArea)
        Local $aReturn[4] = [DllStructGetData($tWorkArea, 'Left'), DllStructGetData($tWorkArea, 'Top'), _
                DllStructGetData($tWorkArea, 'Right') - DllStructGetData($tWorkArea, 'Left'), DllStructGetData($tWorkArea, 'Bottom') - DllStructGetData($tWorkArea, 'Top')]
        Return $aReturn
    EndFunc   ;==>GetWorkArea