Файл 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.