我正在使用此代码获取 shell 图标(显示在 Windows 资源管理器中的那个)。
有没有人有过更快地获取这些图标的经验? SHGetFileInfo
似乎很慢。
procedure TForm2.Button1Click(Sender: TObject);
var
FileInfo: TSHFileInfo;
begin
FillChar(FileInfo, SizeOf(FileInfo), 0);
if SHGetFileInfo(PChar('c:\windows\'), 0, FileInfo, SizeOf(FileInfo),
SHGFI_ICON or SHGFI_SMALLICON or SHGFI_SYSICONINDEX) <> 0 then
DrawIconEx(Canvas.Handle, 10, 10, FileInfo.hIcon, 0, 16, 16, 0, DI_IMAGE or
DI_MASK);
end;
谢谢!
最佳答案
也尝试使用 SHGFI_USEFILEATTRIBUTES 标志。见文章Tuning SHGetFileInfo for Optimum Performance
和 What does SHGFI_USEFILEATTRIBUTES mean?
获取更多信息。
关于windows - 获取 shell 图标的最快方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9229804/