Регистрация расширений файлов с помощью реестра Windows
На написание этой статьи меня подвигло одно небольшое
происшествие: одна из женщин на работе обратилась ко мне с вопросом - у
нее значок Вордовского файла отображался не как для этих файлов, а как для
незарегистрированного типа. Попробовал зарегистрировать его, используя
пункт контекстного меню "Открыть с помощью", но файл открылся, а значок не
изменился. Был конец рабочего дня, поэтому я протормозил пару минут, пока
не догадался посмотреть расширение файла. Его не было :) - это и не
позволяло ассоциировать файл с приложением. Вот я и решил написать статью
о регистрации расширений файлов. Что это дает? Вы можете двойным кликом
открыть файл с помощью ассоциированного приложения, добавить на него
дополнительные команды (например, печать, быстрый просмотр и т.п.). Для
этого вовсе не обязательно лезть в реестр - можно все сделать с помощью
того же меню "Открыть с помощью..." или проводника, но это не всегда
удобно. Так, если вам надо сделать одну и ту же операцию, скажем, на
десятке компьютеров, то гораздо проще написать reg-файл и установить его
на всех машинах. Или вы распространяете программу, использующую ваш формат
файлов, и чтобы ассоциировать файлы с программой на машинах пользователей
автоматически надо использовать либо тот же reg-файл, либо править реестр
из программы. Вот для этих случаев и нужна эта статья.
Файлы регистрируются в разделе HKEY_CLASSES_ROOT. Для
примера зарегистрируем файл с расширением .diz - многие программы
поставляются с файлом описания, имеющим такое расширение. Неплохо было бы
при запуске его просматривать содержимое в текстовом редакторе, например,
Блокноте. Создайте раздел с именем .diz, в параметр которого "По
умолчанию" добавьте запись "DIZ-File" (без кавычек).
В разделе HKEY_CLASSES_ROOT создайте еще один раздел с
именем, которое было в параметре "По умолчанию", т.е. DIZ-File.
Задайте значение "По умолчанию" равное "Описание программы" и в этом же
разделе создайте подразделы shell и DefaultIcon.
В подразделе shell создайте еще один подраздел Open,
а в нем раздел command. Значение command "По умолчанию" должно быть
"C:\\windows\\notepad.exe \"%1\"". В разделе DefaultIcon параметр "По
умолчанию" задайте равным "C:\\windows\\notepad.exe,1". Получилось все
несколько сумбурно и запутанно, но приведенный ниже reg-файл должен
устранить все неясности
REGEDIT4
[HKEY_CLASSES_ROOT\.diz] @="DIZ-File"
[HKEY_CLASSES_ROOT\DIZ-File] @="Описание
программы"
[HKEY_CLASSES_ROOT\DIZ-File\shell]
[HKEY_CLASSES_ROOT\DIZ-File\shell\Open]
[HKEY_CLASSES_ROOT\DIZ-File\shell\Open\command] @="C:\\windows\\notepad.exe
\"%1\""
[HKEY_CLASSES_ROOT\DIZ-File\DefaultIcon] @="C:\\windows\\notepad.exe,1"
Теперь все стало несколько понятнее. Надеюсь, вы обратили
внимание на то, что в пути файла вместо одного символа \
используется \\ и кавычка задается как \". При открытии
файла используется параметр %1 после полного имени файла Блокнота
(кстати, путь к нему у вас может быть другим). Этот параметр передает
выбранный файл в Блокнот. Если путь к файлу приложения содержит пробелы,
то он должен быть заключен в кавычки.
Теперь добавим пункт на распечатывание этого файла. Покажу
все на примере нашего reg-файла. Добавьте следующие строки в конец
файла:
[HKEY_CLASSES_ROOT\DIZ-File\shell\print]
[HKEY_CLASSES_ROOT\DIZ-File\shell\print\command] @="C:\\windows\\notepad.exe
/p \"%1\""
Думаю, аналогия понятна. Теперь вы и сами можете добавить
любой пункт меню к любому зарегистрированному типу файлов. Так, можно было
бы добавить просмотр файлов diz в WordPad'e, Word'e или еще где-то.
Возможности по редактированию контекстного меню файлов весьма обширные и я
надеюсь, что мне удалось довольно понятно объяснить технологию добавления
новых пунктов. Ну, а если что-то будет непонятно, пишите.
Источник: www.infocity.kiev.ua
|