Теперь, когда вы знаете, где находятся все основные разделы, вы можете использовать редактор реестра. После внесения изменений не забудьте принять некоторые меры для того, чтобы защитить ваши специализированные типы файла от агрессивных программ установки приложений, как описано в разделе «Заблокируйте свои типы файла».
Для каждого типа файла по умолчанию существует значок, который отображается для всех файлов данного типа. Однако Windows 7 не предлагает другого способа указать собственный значок, кроме как через редактирование реестра вручную. А ведь такая возможность присутствовала раньше во всех версиях Windows до Vista.
Значение (По умолчанию) в разделе Defaultlcon содержит полный путь и имя файла, содержащего значок. Часто в нем содержится указание на приложение, которое открывает файл (например, excel.exe для xls-файлов), но иногда можно найти ссылку на .dll- или .ico-файл, содержащий набор значков. За именем файла следует запятая и индекс, который указывает номер отображаемого значка. Например:
C:\Program Files\Photoshop\Photoshop.exe, 15
указывает на файл Photoshop.exe, расположенный в папке C:\Program Files\Photoshop, и на 16-й значок в этом файле (нумерация значков начинается нулем). Иногда в разделе Defaultlcon можно увидеть что-то вроде
%SystemRoot%\system32\wmploc. dll, -731
Здесь %SystemRoot% — это переменная, которая представляет папку Windows (обычно C:\Windows). Когда значение (По умолчанию), в котором хранится эта информация, помещается в расширяемое строковое значение (описано в разделе «Суть реестра — его значения»), Windows, прежде чем получить значок, преобразовывает имя файла в C:\Windows\System32\wmploc.dll. Иногда можно увидеть после имени файла и отрицательную величину (здесь -731), которая представляет ID ресурса (resource ID) используемого значка, — в противоположность положительному значению, указывающему индекс (позицию) значка, как описано ранее.
Трюк, который можно применить для некоторых файлов изображений, например #«, I ico, — установить Defaultlcon значение (По умолчанию) «%1» (вводить с кавычка-^ ^ •, ми). Эта «самоссылка» указывает Проводнику использовать встроенное в файл ' изображение в качестве значка файла. Хотя это работает и для некоторых других форматов изображений, эта функция оказалась вытеснена IconHandlers.
В большинстве случаев можно задать свой значок для конкретного типа файла, указав полный путь к файлу .exe, .dll, .ico или .bmp в значении (По умолчанию) раздела Defaultlcon. (Подсказка: некоторые хорошие значки находятся в \Windows\System32\ shell32.dll.) Укажите число — номер значка, который следует отображать, или не указывайте, чтобы использовать первый значок в файле. В некоторых случаях Проводник распознает изменение сразу же, в связи с тем что он кэширует значки; возможно, понадобится перезапустить Windows, чтобы эти изменения полностью вступили в силу.
Самым легким способом изменить значок для типа файла является применение стороннего инструмента, такого как Fileiype Doctor, обсуждаемого в следующем разделе.
SiU
Единственный случай, когда Windows не будет обращать внимание на значок, указанный в разделе Defaultlcon, — это когда задействован IconHandler, который генерирует динамичные значки (рис. 3.15), обычно показывая миниатюры содержимого файлов вместо статических значков.
IconHandler — это программа, которая понимает формат файла (обычно файл .dll в папке программы приложения), с которым файл связывается. Например, Adobe Acrobat (версия 7.0 и позже) использует эту функцию, чтобы облегчить предварительный просмотр миниатюр файлов .pdf. Для расширения .pdf IconHandler приложения Acrobat может быть указан в любом из следующих разделов реестра:
HKEY_CLASSES_ROOT\.pdf\ShellEx\IconHandler
HKEY_CLA5SES_R00T\. pdf \ShellEx\{BB2E617C-0920-11D1-9A0B-00C04FC2D6C1} HKEY_CLASSES_ROOT\AcroExch. Document. 7\ShellEx\IconHandler HKEY_CLASSES_ROOT\AcroExch.Document.7\ShellEx \{BB2E617C-0920-llDl-9A0B00C04FC2D6C1)
HKEY_CLASSES_ROOT\SystemFileAssociations\. pdf\ShellEx\IconHandler HKEY_
CLASSES_ROOT\SystemFileAssociations\.pdf\ShellEx\{BB2E617C-0920-llD19A0B-
00C04FC2D6C1}
HKEY_CLASSES_ROOT\SystemFileAssociations\image\ShellEx\IconHandler HKEY_
CLASSES_ROOT\SystemFileAssociations\image\ShellEx\{BB2E617C-0920-llD19A0B-
00C04FC2D6C1)
Выясняется, что Adobe выбрал четвертый из этих разделов, чтобы зарегистрировать свой IconHandler. Значение (По умолчанию) в этом разделе содержит 38-значный класс ID, который указывает на запись в HKEY_CLASSES_ROOT\CLSID, содержащую подробные данные о файле .dll.
Если ссылка на IconHandler содержится в одном из разделов под названием IconHandler, то указанный в нем .dll-файл отвечает за динамически сгенериро-^ ванный значок. Но более новые программы для ссылки на IconHandler будут ис-