システム全体に関するパラメータを取得・設定する
Declare Function SystemParametersInfo Lib "user32.dll" Alias "SystemParametersInfoA" _
(ByVal uiAction As Long, ByVal uiParam As Long, pvParam As Any, _
ByVal fWinIni As Long) As Long
Declare Function SystemParametersInfo Lib "user32.dll" Alias "SystemParametersInfoA" _
(ByVal uiAction As Integer, ByVal uiParam As Integer, pvParam As Integer, _
ByVal fWinIni As Integer) As Integer
BOOL SystemParametersInfo(
UINT uiAction,
UINT uiParam,
PVOID pvParam,
UINT fWinIni
);
引数
uiAction
設定、または、取得するパラメータを指定する定数uiParam
uiActionに関連するパラメータpvParam
uiActionに関連するパラメータfWinIni
WIN.INIを書き換えるかどうかを指定する定数戻り値
正常終了のとき 0以外備考
エラーのとき 0
uiActionの設定によってuiParamとpvParamの取り扱い方が異なる。
つまりpvParamは構造体へのポインタであったり、長整数変数(Long)、整数変数(Byte)であったりする。
とりあつかいかたによって関数の宣言を買えるほうが安全である。
構造体を取得する場合の宣言方法(例:SPI_GETWORKAREA)
Declare Function SystemParametersInfo_RECT Lib "user32.dll" Alias "SystemParametersInfoA" _
(ByVal uiAction As Long, ByVal uiParam As Long, pvParam As RECT, ByVal fWinIni As Long) As Long
Dim lprc As RECT
MsgBox SystemParametersInfo_RECT(SPI_GETWORKAREA,0,lprc,0)
配列を取得する場合の宣言方法(例:SPI_GETMOUSE)
Declare Function SystemParametersInfoAny Lib "user32.dll" Alias "SystemParametersInfoA" _
(ByVal uiAction As Long, ByVal uiParam As Long, pvParam As Any, ByVal fWinIni As Long) As Long
Dim pvParamArray(2) As Long
MsgBox SystemParametersInfoAny(SPI_GETMOUSE,0,pvParamArray(0),0)
長整数値を取得する場合の宣言方法(例:SPI_GETMOUSETRAILS)
Declare Function SystemParametersInfoPtr Lib "user32.dll" Alias "SystemParametersInfoA" _
(ByVal uiAction As Long, ByVal uiParam As Long, pvParam As Long, ByVal fWinIni As Long) As Long
Dim pvParam As Long
MsgBox SystemParametersInfoPtr(SPI_GETMOUSETRAILS,0,pvParam,0)
長整数値を設定する場合の宣言方法(例:SPI_SETFONTSMOOTHING)
Declare Function SystemParametersInfo Lib "user32.dll" Alias "SystemParametersInfoA" _
(ByVal uiAction As Long, ByVal uiParam As Long, ByVal pvParam As Long, ByVal fWinIni As Long) As Long
Dim pvParam As Long
MsgBox SystemParametersInfoPtr(SPI_SETFONTSMOOTHING,1,0,0)
uiActionの定数uiActionに指定する定数の一覧ページへfWinIniの定数
0 更新しない
SPIF_UPDATEINFILE = 1 更新する
SPIF_SENDWININICHANGE = 2 全てのアプリケーションに通知して更新する