-1

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

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 3in的图标shell32.dll

在此处输入图像描述

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

那么如何获得 Windows Explorer 用于任何特定文件夹的确切文件夹图标位置(图标 dll 文件和图标索引)?

4

1 回答 1

1

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

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

在此处输入图像描述

于 2015-03-09T23:58:36.413 回答