Работа с Реестром ОС WindowsNT/2000/XP, страница 5

Для того чтобы действия, описанные в INF-файле, были выполнены, необходимо щелкнуть правой кнопкой мыши на этом файле и в контекстном меню выбрать пункт Install (Установить). При этом будет выполнена команда:

C:\WINDOWS\rundll.e ХЕ setupx.dll, InstallHinfSection DefaultInstall 132 %1

где С — жесткий диск, на котором установлена ваша система, а %1 — имя INF-файла.

Информация о типах файлов

Все записи, связанные с типами файлов, расположены в ключе реестра HKEY_ CLASSES_ROOT. В этом ключе располагается не только информация о типах файлов, но также и записи регистрации серверов ActiveX.

Каждому типу файлов соответствует подключ, имя которого совпадает с расширением файла (включая символ точки). Значение этого ключа — это короткая строка, которая никогда не показывается пользователю. Эта строка должна быть уникальным сочетанием символов. Вы можете использовать в качестве этой строки фактически любую, удобную для вас комбинацию символов. Например, в моем реестре текстовым файлам соответствует следующая запись:

.txt = txtfile

Зачем может понадобиться такая запись? Посмотрим далее содержимое ключа HKEY_CLASSES_ROOT. В этом ключе можно обнаружить следующую запись:

txtfile = Text Document

Благодаря этой записи при отображении на экране свойств любого текстового файла можно видеть, что файл принадлежит к типу Text Document.

Зачем нужно ставить в соответствие одному типу файлов две строки? Нельзя ли было разместить символьное название типа файлов непосредственно в ключе, имя которого соответствует расширению файла? Причина этого проста: одному типу файлов может соответствовать несколько файловых расширений. Например, на моем компьютере типу Text Document соответствуют расширения .die, .exc, .log, .scp и .wtx.

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

txtfile\shell\open = &0реп

txtfile\shell\open\command = %SystemRoot%\system32\NOTEPAD.EXE %l txtfile\shell\print = &Print

txtfile\shell\print\command = %%SystemRoot%\system32\NOTEPAD.EXE /p %l

Имена пунктов меню (такие как &0реп и &Print) можно не указывать — в этом случае пункт контекстного меню не будет содержать какого-либо символьного имени, но при выборе этого пункта Windows все равно выполнит соответствующее действие. Напротив, можно сделать имена пунктов меню более содержательными, например, заменить &0реп на &0pen With Notepad.

Иногда необходимо запустить программу для обработки некоторого класса файлов. Для обслуживания подобных ситуаций Windows поддерживает несколько ключей типов файлов, которым не соответствует конкретное расширение. Например, подключ * (символ звездочки) соответствует любому файлу. В частности, можно настроить реестр так, чтобы для всех файлов в каталоге запускалась программа подсчета контрольной суммы. Можно назначить программу, которая будет выполняться для аудио компакт-дисков (подключ AudioCD) или каталогов (подключ Directory). Подключ Unknown соответствует типам файлов, которые не распознаются графической оболочкой.

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

Можно, например, обнаружить в реестре следующую строку:

txtfile\DefaultIcon = %SystemRoot%\system32\shell32.dll ,-152

Значение этого ключа соответствует исполняемому файлу или DLL, за которым следует идентификатор ID значка, хранящегося в этом файле.