如何获取特定文件夹的shell文件夹图标位置?

时间:2015-03-09 22:27:50

标签: delphi delphi-xe7 shell-icons

在Delphi XE7中,我需要获取Windows资源管理器使用的图标的LOCATION来显示文件夹,尤其是在缩略图视图中。所以我使用这段代码:

var
  Shell32DllFilePath: string;

// Get shell32.dll FilePath:
Shell32DllFilePath := IncludeTrailingPathDelimiter(JclSysInfo.GetWindowsSystemFolder) + 'shell32.dll';
if not FileExists(Shell32DllFilePath) then
begin
    Shell32DllFilePath := '';
    // Todo: log this error
end;

然后我假设默认文件夹图标是IconIndex 3shell32.dll的图标:

enter image description here

但是,这为我提供了每个文件夹的静态图像,而Windows资源管理器根据文件夹位置和/或文件夹内容使用不同的文件夹图标。

那么我怎样才能获得Windows资源管理器用于任何SPECIFIC文件夹的确切文件夹图标位置(图标dll文件和图标索引)?

1 个答案:

答案 0 :(得分:1)

可能没有Windows工作方式的图标文件路径。你提到“特别是在缩略图视图中”,这意味着图像和图标(在文件夹中)在文件夹图标中堆叠在一起。这不会将文件保存在任何位置,因此您无法从任何文件加载。

我假设这是你正在谈论的图标类型:

enter image description here