Автор: CopKiller
Источник: http://www.all-win.ru/
На написание этой статьи меня подвигло одно
небольшое происшествие: одна из женщин на работе обратилась ко мне с
вопросом - у нее значок Вордовского файла отображался не как для
этих файлов, а как для незарегистрированного типа. Попробовал
зарегистрировать его, используя пункт контекстного меню "Открыть с
помощью", но файл открылся, а значок не изменился. Был конец
рабочего дня, поэтому я протормозил пару минут, пока не догадался
посмотреть расширение файла...
Его не было :) - это и не
позволяло ассоциировать файл с приложением. Вот я и решил написать
статью о регистрации расширений файлов. Что это дает? Вы можете
двойным кликом открыть файл с помощью ассоциированного приложения,
добавить на него дополнительные команды (например, печать, быстрый
просмотр и т.п.). Для этого вовсе не обязательно лезть в реестр -
можно все сделать с помощью того же меню "Открыть с помощью..." или
проводника, но это не всегда удобно. Так, если вам надо сделать одну
и ту же операцию, скажем, на десятке компьютеров, то гораздо проще
написать reg-файл и установить его на всех машинах. Или вы
распространяете программу, использующую ваш формат файлов, и чтобы
ассоциировать файлы с программой на машинах пользователей
автоматически надо использовать либо тот же reg-файл, либо править
реестр из программы. Вот для этих случаев и нужна эта
статья.
Файлы регистрируются в разделе HKEY_CLASSES_ROOT. Для
примера зарегистрируем файл с расширением .diz - многие программы
поставляются с файлом описания, имеющим такое расширение. Неплохо
было бы при запуске его просматривать содержимое в текстовом
редакторе, например, Блокноте. Создайте раздел с именем .diz, в
параметр которого "По умолчанию" добавьте запись "DIZ-File" (без
кавычек).
В разделе HKEY_CLASSES_ROOT создайте еще один
раздел с именем, которое было в параметре "По умолчанию", т.е.
DIZ-File. Задайте значение "По умолчанию" равное "Описание
программы" и в этом же разделе создайте подразделы shell и
DefaultIcon.
В подразделе shell создайте еще один подраздел
Open, а в нем раздел command. Значение command "По умолчанию" должно
быть "C:windowsnotepad.exe "%1"". В разделе DefaultIcon параметр "По
умолчанию" задайте равным "C:windowsnotepad.exe,1". Получилось все
несколько сумбурно и запутанно, но приведенный ниже reg-файл должен
устранить все
неясности
REGEDIT4
[HKEY_CLASSES_ROOT.diz]
@="DIZ-File";
[HKEY_CLASSES_ROOTDIZ-File]
@="Описание
программы"
[HKEY_CLASSES_ROOTDIZ-Fileshell]
[HKEY_CLASSES_ROOTDIZ-FileshellOpen]
[HKEY_CLASSES_ROOTDIZ-FileshellOpencommand]
@="C:windowsnotepad.exe
"%1""
[HKEY_CLASSES_ROOTDIZ-FileDefaultIcon]
@="C:windowsnotepad.exe,1";
Теперь
все стало несколько понятнее. Надеюсь, вы обратили внимание на то,
что в пути файла вместо одного символа используется и кавычка
задается как ". При открытии файла используется параметр %1 после
полного имени файла Блокнота (кстати, путь к нему у вас может быть
другим). Этот параметр передает выбранный файл в Блокнот. Если путь
к файлу приложения содержит пробелы, то он должен быть заключен в
кавычки.
Теперь добавим пункт на распечатывание этого файла.
Покажу все на примере нашего reg-файла. Добавьте следующие строки в
конец
файла:
[HKEY_CLASSES_ROOTDIZ-Fileshellprint]
[HKEY_CLASSES_ROOTDIZ-Fileshellprintcommand]
@="C:windowsnotepad.exe
/p "%1""
Думаю, аналогия понятна. Теперь вы и сами
можете добавить любой пункт меню к любому зарегистрированному типу
файлов. Так, можно было бы добавить просмотр файлов diz в WordPad'e,
Word'e или еще где-то. Возможности по редактированию контекстного
меню файлов весьма обширные и я надеюсь, что мне удалось довольно
понятно объяснить технологию добавления новых пунктов. Ну, а если
что-то будет непонятно, пишите.