Изображения

Изображения

Все уже привыкли к стандартным значкам Windows, таким как значок диска, файла неизвестного расширения, папки и т.д. Но иногда все-таки хочется разнообразия, поэтому сейчас попробуем изменить некоторые стандартные значки, применяемые в операционной системе для файлов расширений. Для этого понадобится ветвь реестра HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionExplorerShellIcons. Она как раз и содержит список параметров строкового типа, определяющих пути к файлам рисунков, которые будут использоваться при следующем входе в систему для построения изображений стандартных значков. Значения этих строковых параметров определяют путь к файлу изображения, а имя параметра соответствует индексу данного значка в библиотеке shell32.dll (этот индекс указывает на изображение по умолчанию для данного значка). Список всех индексов и соответствующих им значков можно просмотреть в приложении 5. Пока, чтобы не отвлекаться на перелистывание книги, скажем, что для отображения значка дисковода используется значок с индексом 6, для отображения «руки» под общедоступной папкой используется значок с индексом 28, а для отображения значка файлов справки используется значок с индексом 23. Попробуем изменить файлы рисунков для данных индексов.

По умолчанию ветвь HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionExplorerShell Icons не присутствует в реестре, поэтому ее придется создать самостоятельно. После этого нужно создать в ней параметр строкового типа, имя которого равно 6 (для значка дисковода), а значение параметра определяет путь к новому файлу рисунка. Аналогично создаются параметры для изменения других значков.

ПРИМЕЧАНИЕ

Не всегда внесенные изменения вступают в силу сразу после перезагрузки — иногда нужно подождать некоторое время, чтобы система внесла изменения в файл shelliconcache (данный файл используется как кэш, содержащий все файлы изображений, используемые для отображения значков в системе). Если же ждать не хочется, то можно попробовать самому удалить этот файл. Для этого нужно в командной строке ввести del shelliconcache или самостоятельно найти данный файл и удалить его (файл является суперскрытым, поэтому, чтобы он отобразился, необходимо установить соответствующий флажок на вкладке Вид диалога Свойства папки).

Кстати, существует также возможность изменения размера этого файла. Для этого предназначен параметр строкового типа Max Cached Icons, расположенный в ветви реестра HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionExplorer.

 На рис. 5.1 можно увидеть результат изменения. 

 Рис. 5.1. Изменение изображения, используемого для отображения «руки» общедоступных папок и значка дисковода

Другой возможностью, которую предоставляет операционная система Windows, является изменение значков отдельно для каждого логического диска. Это делается с помощью ветви реестра HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionExplorerDriveIcons. Ветвь должна содержать разделы, каждый из которых назван в честь буквы логического диска (например, для диска С: создаваемый подраздел должен называться С). Внутри раздела диска могут находиться еще два подраздела. Первый из них называется DefaultIcon — его параметр (По умолчанию) как раз и определяет путь к значку, который будет использоваться для отображения дисков. Второй же подраздел называется DefaultLabel — если он присутствует, то значение его параметра (По умолчанию) определяет название метки данного логического диска, применяемой, если диск не имеет своей собственной метки.

ПРИМЕЧАНИЕ

Не забывайте и о ветви реестра HKEY_CLASSES_ROOTApplicationsexplorer.exedrives«буква диска»Defaultlcon, с помощью которой также можно изменить значок для конкретного диска.

Кроме значка и метки диска, операционная система Windows XP позволяет выполнить еще один хакинг — определить, в каком месте названия будет находиться буква логического диска. По умолчанию буква отображается в конце названия, что в некоторых случаях не совсем удобно — буква может скрываться, если название слишком длинное. Поэтому, чтобы исправить этот недостаток, можно воспользоваться DWORD-параметром ShowDriveLettersFirst, расположенным в ветви реестра HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionExplorer. Он может принимать следующие значения:

? 1 — установлено по умолчанию, что как раз и соответствует отображению значка диска справа от его метки;

? 2 — вообще скрывает букву диска из его названия;

? 4 — буква диска будет отображаться слева от его метки, то есть название, которое раньше отображалось как, например, System (С:), после присвоения данному параметру значения 4 и последующей перезагрузки компьютера будет отображаться как (С:) System.

При выполнении хакинга со значками диска следует учитывать, что если вы в данный момент используете вид Эскизы страниц и описываемый в предыдущем разделе параметр thumbnail для идентификатора диска содержит путь к рисунку, то будет применяться именно рисунок из параметра thumbnail, а не изменяемый значок диска.

Следует также учитывать, что существует еще один параметр, определяющий изображение, которое будет накладываться поверх эскиза папки (если вы будете изменять эскиз для папки с помощью параметра thumbnail). Он находится в ветви реестра HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsShellBagsAllFoldersShell и называется Logo (имеет строковый тип). Его значение определяет путь к рисунку, который будет накладываться поверх папки при использовании режима отображения Эскизы страниц.

Раз уж выше была затронута тема эскизов страниц, то мы еще немного поговорим и о них. Параметры отображения эскизов расположены в ветви системного реестра HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionExplorer. Эта ветвь может содержать два параметра DWORD-типа, имеющих названия ThumbnailQuality и ThumbnailSize. Первый определяет качество создаваемых системой эскизов страниц и может принимать значения от 50 до 100 (значение по умолчанию — 90). Второй же параметр определяет размер эскизов. Он может принимать значения от 32 до 255 (по умолчанию его значение равно 96).

Теперь несколько слов о настройке цвета названий различных значков операционной системы Windows. Здесь не будет рассказано о том, что можно изменить с помощью диалога Свойства: Экран, поэтому получится не очень много, но тем не менее.

Существует возможность изменения цвета зашифрованных и сжатых файлов в операционной системе Windows. Для этого применяются два параметра REG_BINARY-типа, имеющие следующий формат: 0xR 0xG 0хВ 00, где 0xR определяет красную составляющую цвета, 0xG — зеленую, а 0хВ — синюю (например, значение 00FF0000 определяет зеленый цвет имени файлов соответствующего типа). Эти параметры расположены в ветви реестра HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionExplorer. Первый из этих параметров называется AltColor и определяет цвет сжатых файлов, а второй — AltEncryptionColor — служит для изменения цвета зашифрованных файлов.

Последний трюк относится к цвету отображения названия определенного ActiveX-объекта. Все дело в том, что в Windows существует возможность указать операционной системе, что название конкретного ActiveX-объекта будет отображаться синим цветом (или цветом, который будет определен вышеописанным параметром AltEncryptionColor). Для этого используется параметр Attributes, расположенный в разделе ShellFolder ветви реестра, определяющей необходимый ActiveX-объект. В предыдущей главе уже рассматривался этот параметр, но еще не упоминалось о такой возможности.

Итак, чтобы отобразить название ActiveX-объекта, расположенное под его значком, синим цветом, достаточно установить данному параметру DWORD-типа битовую маску 0x04000000. Например, чтобы изменить цвет названия значка Панель задач и меню Пуск, расположенного в папке Панель управления, необходимо отредактировать параметр Attributes из ветви реестра HKEY_CLASSES_ROOTclsid{0DF44EAA-FF21-4412-828E-260A8728E7F1}ShellFolder. К сожалению, на черно-белом изображении изменение цвета практически незаметно, поэтому рисунок не приводится.

Можно также заставить систему отобразить название ActiveX-объекта зеленым цветом (или цветом, который будет определен вышеописанным параметром AltColor). Для этого нужно присвоить параметру Attributes битовую маску 0x00002000. Следует только учесть, что в этом случае битовая маска 0x04000000 должна быть сброшена.

Последняя возможность битовой маски Attributes, которая будет рассмотрена, — эффект полупрозрачности значка ActiveX-объекта. Чтобы добиться такого эффекта, нужно присвоить параметру Attributes битовую маску 0x00008000.

ПРИМЕЧАНИЕ

Данный эффект нельзя применить к значку папки Мой компьютер. Существует также одна особенность его применения для значка Корзины — при входе пользователя в систему полупрозрачность для него не применяется, но как только пользователь наведет на значок указатель мыши (и некоторое время подержит на нем), она станет полупрозрачной.