Понедельник, 2024-12-02, 4:37 PM
 
Начало Форум Регистрация Вход
Вы вошли как Гость
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: denix  
Регистрация расширений файлов с помощью реестра Windows
denixДата: Четверг, 2006-06-08, 11:53 PM | Сообщение # 1
Admin
Группа: Администраторы
Сообщений: 531
Репутация: 0
Статус: Offline
На написание этой статьи меня подвигло одно небольшое происшествие: одна из женщин на работе обратилась ко мне с вопросом - у нее значок Вордовского файла отображался не как для этих файлов, а как для незарегистрированного типа. Попробовал зарегистрировать его, используя пункт контекстного меню "Открыть с помощью", но файл открылся, а значок не изменился. Был конец рабочего дня, поэтому я протормозил пару минут, пока не догадался посмотреть расширение файла. Его не было smile - это и не позволяло ассоциировать файл с приложением. Вот я и решил написать статью о регистрации расширений файлов. Что это дает? Вы можете двойным кликом открыть файл с помощью ассоциированного приложения, добавить на него дополнительные команды (например, печать, быстрый просмотр и т.п.). Для этого вовсе не обязательно лезть в реестр - можно все сделать с помощью того же меню "Открыть с помощью..." или проводника, но это не всегда удобно. Так, если вам надо сделать одну и ту же операцию, скажем, на десятке компьютеров, то гораздо проще написать 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 или еще где-то. Возможности по редактированию контекстного меню файлов весьма обширные и я надеюсь, что мне удалось довольно понятно объяснить технологию добавления новых пунктов.
Источник: http://www.winzone.ru

 
  • Страница 1 из 1
  • 1
Поиск:


Бесплатный хостинг uCoz