设置或检索自定义文件夹.
#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 标志可能包含一个系统错误代码. |
在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)