Как получить расположение значка папки оболочки для конкретной папки?
В 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 3
в shell32.dll
:
Тем не менее, это дает мне статическое изображение для каждой папки, в то время как проводник Windows использует различные значки папок в зависимости от расположения папки и / или содержимого папки.
Итак, как я могу получить точное местоположение значка папки (файл значка DLL и индекс значка), который использует проводник Windows для любой папки SPECIFIC?
1 ответ
Может не быть пути к файлу с пиктограммой, как работает Windows. Вы упоминаете "особенно в виде эскизов", что означает, что изображения и значки (внутри папки) объединены в иконку папки. Это не сохраняет файл в любом месте, поэтому вы не можете загрузить из любого файла.
Я предполагаю, что это тип значка, о котором вы говорите: