Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Delphi 如何获取桌面的图标?_Delphi_Winapi - Fatal编程技术网

Delphi 如何获取桌面的图标?

Delphi 如何获取桌面的图标?,delphi,winapi,Delphi,Winapi,我想从一些系统目录中获取图标,如“桌面”。然而,我却得到了一个“默认文件”的图标 函数GetSpecialFolderPath(CSIDLFolder:Integer):字符串; var FilePath:字符的数组[0..MAX_PATH]; 开始 SHGetFolderPath(0,CSIDLFolder,0,0,FilePath); 结果:=文件路径; 结束; 函数GetSystemFileIcon(FolderID:Integer):TIcon; 变量 AInfo:TSHFileInfo

我想从一些系统目录中获取图标,如“桌面”。然而,我却得到了一个“默认文件”的图标

函数GetSpecialFolderPath(CSIDLFolder:Integer):字符串; var FilePath:字符的数组[0..MAX_PATH]; 开始 SHGetFolderPath(0,CSIDLFolder,0,0,FilePath); 结果:=文件路径; 结束; 函数GetSystemFileIcon(FolderID:Integer):TIcon; 变量 AInfo:TSHFileInfo; 爱康:提康; 分机:PAnsiChar; 路径:字符串; 开始 路径:=GetSpecialFolderPath(FolderID); 如果路径=“”则开始 结果:=无; 出口 结束; 如果SHGetFileInfo(PChar(路径)、文件属性、AInfo、SizeOf(AInfo), SHGFI_图标或SHGFI_大图标或SHGFI_系统图标索引或SHGFI_使用文件属性或SHGFI_打开图标)0,然后 开始 AIcon:=TIcon.Create; 尝试 AIcon.Handle:=AInfo.hIcon; 结果:=AIcon; 除了 爱康免费; 提高; 结束; 结束 其他的 结果:=无; 结束; var-Ico:TIcon; 开始 Ico:=GetSystemFileIcon(CSIDL\U桌面目录);
需要删除此属性:

SHGFI_USEFILEATTRIBUTES
那么它就可以正常工作了

SHGFI_USEFILEATTRIBUTES