Как изменить иконку у директории?
Обычно для изменения вида папок в Проводнике используется файл desktop.ini.
Сперва необходимо создать файл desktop.ini и поместить его в ту директорию, иконку которой мы хотим изменить. В программе для этого можно воспользоваться классом TIniFile и передать в него путь директории.
Теперь нам необходимо записать в .ini-файл пары значений. В desktop.ini эти пары выглядят следующим образом:
[.ShellCLassInfo] IconFile=C:\folder.ico IconIndex=0 InfoTip=Folder info tip
Самое главное - это указать иконку и её индекс.
Значение IconFile - это путь к .dll, .ico, или .exe файлу. В Delphi это выглядит так:
var iniFile: TIniFile; ... iniFile:=TIniFile.Create(edFolderPath.Text); with iniFile do begin //Следующие строки записывают в desktop.ini все необходимые параметры WriteString('.ShellClassInfo', 'IconFile', editIconPath.Text); WriteString('.ShellClassInfo', 'IconIndex', editIconIndex.Text); WriteString('.ShellClassInfo', 'InfoTip',editInfoTip.Text); UpdateFile; end; iniFile.Free;
Примечание: здесь editFolderPath, editIconPath, editIconIndex и editInfoTip - элементы TEdit, в которые вводятся все необходимые данные - путь к директории, иконку которой следует изменить, путь к файлу с иконкой, индекс иконки и всплывающая подсказка для директории (подсказка не обязательна).
Теперь, когда файл desktop.ini создан, необходимо изменить атрибуты папки и добавить системный флаг. Чтобы иконка отображалась правильно, желательно установить системный флажок как для папки, так и для её родителя. Для установки атрибутов воспользуемся функцией SetFileAttribue():
//Устанавливаем системные атрибуты для папки и её родителя SetFileAttributes(PChar(edFolderPath.Text), FILE_ATTRIBUTE_SYSTEM); if Length(edFolderPath.Text) > 3 then //Если директория не корневая... begin //функция LastChar возвращает индекс последнего вхождения символа //в строку. Этот способ позволяет быстро получить путь родительской //директориии, если, конечно, директория не является корневой на диске... tempDir := Copy( edFolderPath.Text, 1,LastChar(edFolderPath.Text, '')-1); SetFileAttributes(PChar(tempDir), FILE_ATTRIBUTE_SYSTEM); end;
Теперь можно открыть Проводник и посмотреть на значок.
Статья добавлена: 10 марта 2007
Следующая статья: Липкие окошки »
Зарегистрируйтесь/авторизируйтесь,
чтобы оценивать статьи.
Статьи, похожие по тематике
Для вставки ссылки на данную статью на другом сайте используйте следующий HTML-код:
Ссылка для форумов (BBCode):
Быстрая вставка ссылки на статью в сообщениях на сайте:
{{a:29}} (буква a — латинская) — только адрес статьи (URL);
{{статья:29}} — полноценная HTML-ссылка на статью (текст ссылки — название статьи).
Поделитесь ссылкой в социальных сетях:
Комментарии читателей к данной статье
Пока нет комментариев к данной статье. Оставьте свой и он будет первым.
Оставлять комментарии к статьям могут только зарегистрированные пользователи.