windows - 获取 shell 图标的最快方法

标签 windows delphi winapi shell icons

我正在使用此代码获取 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 PerformanceWhat does SHGFI_USEFILEATTRIBUTES mean?获取更多信息。

关于windows - 获取 shell 图标的最快方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9229804/

相关文章:

c - 如何在 Windows 上用 C 编写 unicode hello world

DELPHI XE命令行编译本地化文件

delphi - 从 EndOfTheMonth(date) 到 Variant 值的错误转换

multithreading - waveOut (Win32API) 和多线程

windows - 注册表拦截的替代方案

windows - I/O完成端口* LAST *称为回调,或: where it's safe to cleanup things

java - java中访问资源的不同字符串

c++ - 如何以编程方式获取 C++ 中的 CPU 缓存页面大小?

delphi - ocks5代理互联网

c++ - SymGetLineFromAddr 无法正常工作