Сделать страницу стартовой  |  [ ]  |   Добавить в избранное


Реестр Windows 98/ME




Общая информация
Создание типов файлов
Замечательная и полезная информация


Общая информация
Термин «типы файлов» описывает набор сопоставлений документов приложениям, с помощью которых эти документы были созданы. Например, благодаря типу файла Windows «знает», что при двойном щелчке на файле с расширением .txt для его открытия следует вызвать программу Блокнот (Notepad).
     Конфигурация файла начинается с расширений файлов - букв (обычно трех), которые ставятся после точки в большинстве имен файлов. Например, расширением файла
Readme.txt является .txt, которое обозначает простой текстовый файл; расширением файла Resume.wpd является .wpd, которое говорит о том, что файл был создан приложением WordPerfect. По умолчанию Windows скрывает расширения зарегистрированных типов файлов в программе Проводник (Explorer) и на Рабочем столе (Desktop), но во многих случаях удобнее, чтобы расширения отображались; они позволяют определить тип конкретного файла (значкам почти всегда не хватает описательности), а также изменить то, как Windows интерпретирует тип файла, если расширение файла переименовывается.
     Заметьте, что простое переименование расширения не изменяет ни содержания, ни формата файла, а изменяет лишь способ взаимодействия Windows с файлом.
     Скрывая расширения файлов, Microsoft надеялась на то, что это упростит пользование Windows, но по ряду причин этот план привел к обратным результатам. Например, не отображаются только расширения зарегистрированных типов файлов, а файлы, расширения которых не добавлены в базу данных
Типы файлов, отображаются в любом случае. Когда же один из этих типов файлов регистрируется либо приложением, либо самой Windows, неискушенный пользователь может подумать, что все имевшиеся файлы этого типа были переименованы, так как их расширения магическим образом растворились (Windows никогда не скрывает расширения файлов незарегистрированного типа). В результате образуется пропасть - между теми, кто разбирается в типах файлов, и теми, кто в этом ничего не понимает: попробуйте попросить кого-нибудь, на чьем компьютере расширения файлов не отображаются, найти файл Readme.txt в папке, полной файлов! Возникли и другие проблемы. Например, попробуйте отличить в окне программы Проводник (Explorer) файл Excel.exe от Excel.xls, если расширения скрыты — первый файл является программой, второй — документом, созданным с помощью этой программы, но их значки могут быть одинаковыми.
     В разделе реестра
HKEY_CLASSES_ROOT хранится информация о всех типах ваших файлов. Сначала перечисляются расширения файлов с точкой перед расширением, за ними следуют сами типы файлов. Разделы, названные по расширениям файлов, содержат данные, указывающие на разделы, в которых описаны типы файлов. Например, в разделе HKEY_CLASSES_ROOT\.txt (обратите внимание на то, что в название включена точка) вы найдете не так много информации. Здесь важным является параметр [По умолчанию], который содержит имя другого раздела, находящегося ниже в дереве каталогов. В случае .txt параметр [Поумолчанию] имеет значение txtfile. Оно указывает на раздел HKEY_CLASSES_ROOT\txtfile, который и является настоящим типом файла, как показано на Рис. 3

В этих двух частях реестра указан тип файла

Рис. 3. В этих двух частях реестра указан тип файла.

Все детали о типе файла хранятся в подразделе txtfile: например, формальное имя (в данном случае, "Текстовый документ" - "Text File"), значок, использующийся программой Проводник (Explorer) и приложение, которое служит для редактирования этого типа файлов. Так как на этот раздел могут ссылаться параметры расширений, тип файла (например, txtfile) может иметь несколько расширений, ссылающихся на него. Это важный момент, так как средства вкладки Типы файлов программы Проводник (Explorer) не позволяют задавать более одного расширения для любого конкретного типа файла.

Создание типов файлов
Рассмотрим несколько способов создания типов файлов.


 Структура, показанная на Рис. 3, обычно возникает на экране, когда приложение запрашивает тип файла. В данном случае тип файла "Текстовый документ" ("Text File") был создан при первой установке Windows. Если для создания нового типа файлов вы пользуетесь вкладкой Типы файлов программы Проводник (Explorer), то на экране появится примерно такое же окно.



 Если вы когда-нибудь пытались открыть файл с незарегистрированным типом файла при помощи двойного щелчка, то в ответ на ваши действия появлялось диалоговое окно Открыть с помощью, которое также можно открыть, если, удерживая нажатой клавишу Shift, щелкнуть на любом файле и выбрать пункт Открыть с помощью (в Windows ME этот пункт всегда есть в меню любого файла). В этом окне вам предлагается выбрать программу, используемую для открытия файлов данного типа. Типы файлов, создаваемые этим способом, распознаются по суффиксу _auto_file, например, при выборе программы для открытия файлов с расширением .dat создается параметр типа файла dat_auto_file.



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


     Вне зависимости от того, какой способ использовался для создания типа файла, структура в реестре остается практически одной и той же. Все главные компоненты типа файла показаны на Рис. 3. Сначала создается раздел для каждого расширения, сопоставленного с типом файла. Параметр [По умолчанию] раздела расширения содержит название раздела, в котором находится тип файла, а не формальное имя типа файла. Так, здесь указывается не txtfile, а "Текстовый документ" ("Text File"). Значение типа ContentType может быть указано для некоторых типов файлов, но это не является необходимым условием нормального функционирования.
     Раздел
ShellNew также может находиться под разделом расширения файла. Этот раздел сообщает Windows о необходимости включить расширение в пункт Создать меню программы Проводник (Explorer). Тогда пользователь сможет создавать пустые файлы этого типа прямо из программы Проводник (Explorer), без запуска приложения. Причина, по которой раздел ShellNew находится под разделом расширения, а не под разделом типа файла (об этом ниже), заключается в том, что тип файла может иметь более одного расширения, a Windows должна «знать», какое из этих расширений использовать при создании нового файла. Раздел ShellNew обычно пуст, хотя в нем и может находиться параметр FileName, указывающий на шаблон (template) - файл, находящийся на жестком диске, который используется Windows для создания нового пустого документа (см. пример 1). В большинстве случаев параметр FileName опускается, и Windows создает файл размером в ноль байт (то есть пустой) с соответствующим расширением.
     Большая часть определения типа файла находится в основном разделе типа файла, имя которого указано в каждом из вышеперечисленных разделов расширений. На Рис. 3 раздел
txtfile является основным разделом, в котором содержатся все параметры для типа файла "Текстовый документ" ("Text File"). Обратите внимание на то, что параметр [По умолчанию] является описательным именем типа файла - это текст, отображающийся на вкладке Типы файлов программы Проводник (Explorer) и в столбце Тип при просмотре файлов в режиме Таблица.
     Если вы видите параметр
AlwaysShowExt (его значение всегда пусто), это значит, что расширение для этого типа файлов отображается в программе Проводник (Explorer), даже если пользователь вознамерится скрыть расширения для файлов зарегистрированных типов. Также вы можете увидеть двоичный параметр EditFlags. Если он опущен или его значение равно 00 00 00 00, вы можете редактировать этот тип файла в программе Проводник (Explorer). Если значение параметра EditFlags равно 01 00 00 00, этот тип файлов не будет отображаться редактором Типа файлов программы Проводник (Explorer).
     Под разделом типа файла находятся три или четыре независимых подраздела.
DefaultIcon содержит лишь параметр [По умолчанию], установленный для имени файла значка, использующегося для этого типа файлов. Значки определяются именем файла и индексом значка, например:
d:\путь\имя_файла, ###
     Здесь
d:\путь\имя_файла представляет собой полный путь и имя файла типа .ехс, .dll, .ico или .bmp, в котором находится один или несколько значков, а ### является индексом (порядковым номером) значка (конечно, в реальности знаки # не отображаются). Чтобы использовать первый по порядку значок из тех, что находятся в файле, укажите 0, второй - 1 и т. д. Выбрать значок проще всего с помощью программы Проводник (Explorer), так как вкладка Типы файлов позволяет найти нужный значок без использования клавиатуры.
     Если присутствует раздел
Быстрый просмотр, то в контекстном меню для файлов этого типа будет находиться пункт Быстрый просмотр. В этом разделе обычно имеется параметр [По умолчанию], чье значение равно * (звездочке).
     Важнейшая часть информации хранится в разделе
shell. Его подразделы определяют, что происходит при двойном щелчке на файле этого типа и какие команды доступны в контекстном меню таких файлов. Под разделом shell находятся независимые разделы для каждой из этих команд, а это значит, что при щелчке правой кнопкой мыши на файле этого типа указанные команды будут находиться в верхней части меню. Большинство типов файлов имеют команду Открыть, которой соответствует одноименный раздел. Здесь также могут находиться разделы Правка, Печать, Печать в и Вид. Любую из этих команд (разделов) можно удалять, добавлять и редактировать. Под каждым из этих разделов находится раздел command. Значение параметра [По умолчанию] соответствует имени файла программы, использующейся для выполнения команды.
     Так, если программа Блокнот (Notepad) сопоставлена с командой
Открыть для текстовых файлов, то содержимым раздела HKEY_CLASSES_ROOT\txtfile\shell\open\command будет Noteapd.exe "%1". Оператор "%1" (вместе с кавычками) имеет важное значение, так как %1 - это то, что Windows заменяет в командной строке приложения, а кавычки нужны на тот случай, если в имени открываемого файла будут пробелы. Таким образом, если щелкнуть правой кнопкой мыши на любом файле, имеющем расширение .txt (скажем, с:\документы\мой_файл.txt) и выбрать в контекстном меню пункт Открыть, Windows выполнит приводимую ниже команду, которая запустит программу Notepad.exe и сообщит ей, что следует открыть документ:
Notepad "с:\документы\мой_файл.txt"
     Если для какого-то типа файла используется несколько команд, одна из них выделяется полужирным шрифтом, как показано на Рис. 4.

Рисунок 4

Рис. 4. В контекстном меню файлов точечных рисунков командой по умолчанию является Открыть, в нем также есть дополнительная команда Добавить в архив.

Такая команда называется командой по умолчанию и используется Windows, когда вы дважды щелкаете левой кнопкой мыши, а не правой. Обычно командой по умолчанию является Открыть, но в качестве такой команды можно задать любую другую. Для этого укажите название команды в параметре [По умолчанию] раздела shell. Так, если для какого-то типа файла используются команды Открыть, Правка и Печать и вы указываете значение edit для параметра [По умолчанию], то команда Правка будет выделена полужирным шрифтом в контекстном меню файлов этого типа и будет выполняться при двойном щелчке на файле. Обратите внимание на то, что хотя слово open часто пишется строчными буквами, в контекстном меню его первая буква остается заглавной (Открыть - Open). Windows сохраняет регистр всех остальных команд, но в этой автоматически ставит заглавную.      Наконец, в разделе shellkey содержатся ссылки на расширения оболочки, но если вы не программист, то лучше вам сюда и не заходить. Заметьте, что вы можете удалять ненужные пункты контекстных меню и лишние вкладки в диалоговых окнах свойств для файлов некоторых типов путем удаления соответствующих разделов в раздел расширений оболочки, но будьте осторожны. В реестре также можно встретить разделы CLSID и ddeexec, которые имеют специальное назначение, но не представляют интереса для большинства пользователей.
     В связи с тем, что стандартный тип файла имеют столько составляющих, лучшим способом дублирования или сохранения (защиты) типа файла представляется создание заплатки. Если вы создаете совершенно новый тип файла, вероятно, проще всего сначала экспортировать существующий тип файла, а затем изменить некоторые его компоненты.


Замечания и полезная информация
Иметь под рукой некоторый набор типов файлов всегда полезно. Например, вы можете создавать собственные заплатки реестра для любых типов файлов, которые часто перезаписываются, таких как .jpg, .gif, .bmp, .txt, .mp3 .doc и .html. Если приложение, которым вы не хотите пользоваться в данный момент, запрашивает сохраненный тип файла, просто установите заплатку реестра для восстановления своих настроек.
Использование файлов типа .ini
Hosted by uCoz