Файл desktop.ini

Файл desktop.ini

Еще один интересный специальный файл, с помощью которого можно выполнить настройку оболочки Windows XP. Например, с его помощью можно изменить значок для папки, в которой он будет находиться, создать для нее описание и сделать многое другое. Для примера попробуем изменить изображение для отдельной папки и создать для нее описание. Для этого необходимо сделать следующее.

1. Создать в папке файл с названием desktop.ini (желательно также скрыть его).

2. Присвоить папке атрибут системной. Это выполняется с помощью команды attrib +S «путь к папке».

Если вы уже сделали папку системной, а также создали в ней файл desktop с расширением ini, то приведем в листинге 17.2 небольшой пример содержимого файла desktop.ini.

Листинг 17.2. Пример содержимого файла desktop.ini

[.ShellClassInfo]

IconFile = c:windowssystem32shell32.dll

IconIndex = 34

InfoTip = "Здесь находится много файлов, дорогих моему сердцу, поэтому просьба папку не открывать."

Назначение ключевых слов данного файла можно понять при взгляде на рис. 17.2.

Ключевое слово IconFile указывает путь к библиотеке, содержащей необходимый вам рисунок папки, а ключевое слово IconIndex определяет индекс необхо-димого вам изображения в данной библиотеке. Ключевое слово InfoTip определяет подсказку, отображаемую для данного файла.

Рис. 17.2. Использование файла desktop.ini для изменения изображения папки

С помощью файла desktop.ini можно также запретить создание в папке других папок и файлов (при этом есть возможность во вложенных папках создать папки и файлы). Для этого необходимо в блоке [.ShellClassInfo] создать следующие строки:

UICLSID={7BD29E00-76C1-11CF-9DD0-00A0C9034933}

CLSID={FF393560-C2A7-11CF-BFF4-444553540000}

После этого рисунок папки изменится, а при попытке записи в папку будет выдаваться сообщение (рис. 17.3). Если же необходимо, чтобы рисунок папки не менялся, то строку CLSID={FF393560-C2A7-11CF-BFF4-444553540000} нужно удалить.

Рис. 17.3. Ошибка при создании папки или файла

Блок [.ShellClassInfo] может иметь ключевое слово LocalizedResourceName, которое переопределяет название папки. Например, если в файле desktop.ini для нашей папки создать строку LocalizedResourceName=@shell32.dll,-21765, то название папки Doc_Natali изменится на название Application Data. При этом, к сожалению, ключевое слово LocalizedResourceName не поддерживает прямой текст. Другими словами, нужно обязательно указывать текст, хранящийся в какой-либо библиотеке. 

Но, кроме названия самой папки, с помощью файла desktop.ini можно изменить названия файлов, содержащихся в этой папке. Для этого служит блок INI-файла [LocalizedFileNames]. Он может включать в себя строки формата «истинное название файла»=«библиотека, и индекс нового названия в ней». К сожалению, новые названия прямым текстом указывать нельзя.

Например, если в папке содержится файл PICT0412.JPG, то для изменения названия этого файла на Рабочий стол (создать ярлык), нужно воспользоваться строкой PICT0412.JPG=@sendmail.dll, –21.