函数参考


_WinAPI_ShellGetSetFolderCustomSettings

设置或检索自定义文件夹.

#Include <WinAPIEx.au3>
_WinAPI_ShellGetSetFolderCustomSettings ( $sPath, $iFlag, ByRef $tSHFCS )

参数

$sPath 文件夹的路径.
$iFlag 函数的控制操作. 参数可以是以下值之一:
 $FCS_READ --- 检索 $tSHFCS 提供的自定义文件夹设置
 $FCS_FORCEWRITE --- 使用 $tSHFCS 提供的自定义文件夹设置,无论其是否存在
 $FCS_WRITE --- 如果值不存在,使用 $tSHFCS 提供的自定义文件夹设置
$tSHFCS $tagSHFOLDERCUSTOMSETTINGS 结构,提供或接收自定义文件夹设置

返回值

成功: 返回 1.
失败: 返回 0,设置@error标志为非 0 值, @extended 标志可能包含一个系统错误代码.

注意/说明

返回函数读取和写入的 Desktop.ini

相关

详情参考

在MSDN中搜索


示例/演示


#Include <APIConstants.au3>
#Include <WinAPIEx.au3>

Opt('MustDeclareVars', 1)

Global $tSHFCS, $tIcon, $aIcon, $sPath

; 选择文件夹
$sPath = FileSelectFolder('Select Folder', '', 0, @ScriptDir)
If Not $sPath Then
    Exit
EndIf

; 选择图标
$aIcon = _WinAPI_PickIconDlg()
If Not IsArray($aIcon) Then
    Exit
EndIf

; 设置图标到选择的文件夹
$tSHFCS = DllStructCreate($tagSHFOLDERCUSTOMSETTINGS & 'wchar[' & (StringLen($aIcon[0]) + 1) & ']')
DllStructSetData($tSHFCS, 'Size', DllStructGetPtr($tSHFCS, 16) - DllStructGetPtr($tSHFCS))
DllStructSetData($tSHFCS, 'Mask', $FCSM_ICONFILE)
DllStructSetData($tSHFCS, 'IconFile', DllStructGetPtr($tSHFCS, 16))
DllStructSetData($tSHFCS, 'SizeIF', 260)
DllStructSetData($tSHFCS, 'IconIndex', $aIcon[1])
DllStructSetData($tSHFCS, 16, $aIcon[0])

_WinAPI_ShellGetSetFolderCustomSettings($sPath, $FCS_FORCEWRITE, $tSHFCS)