Наконец, зарегистрировав новый тип файла, необходимо добавить соответствующий ему пункт в подменю New (Создать) графической оболочки. Когда вы щелкаете правой кнопкой мыши в рабочем окне проводника или на рабочем столе, на экране появляется меню, одним из пунктов которого будет пункт New (Создать). При выборе этого пункта на экране появляется подменю, в котором перечисляются различные типы документов. При выборе одного из этих типов в текущем каталоге (или на рабочем столе) будет создан новый документ указанного типа.
Прежде всего, необходимо учитывать, что добавить новый тип файла в подменю New можно только в случае, если в реестре зарегистрирована команда Open, соответствующая этому типу файлов (для этого, как уже рассказывалось, в реестр следует добавить подключ shell\open). Если команда Open зарегистрирована, можно приступать к регистрации команды New.
Запись реестра, относящаяся к меню New, располагается в ключе реестра, соответствующем расширению файла, а не его типу. То есть, чтобы добавить в меню New пункт, соответствующий текстовым файлам, необходимо разместить связанную с этим запись в ключе .txt, а не в ключе txtfile. Дело в том, что система должна знать, каким разрешением должен обладать создаваемый файл. Идентифицирующей строке txtf Л е может соответствовать несколько разрешений (например, у меня на компьютере — .txt, .log, .scp и другие), поэтому, если Windows будет искать команду создания нового файла в ключе txtfile, она не сможет определить, какое из этих разрешений присвоить новому файлу. Если информация о новом файле будет размещена в ключе, соответствующем разрешению, система сможет однозначно определить разрешение нового файла.
В ключе, соответствующем разрешению, следует поместить подключ ShellNew, который может не иметь значения. Если вы хотите указать изначальное содержимое нового файла этого типа, следует разместить в ключе одну пару имя/значение.
Если имя значения будет Null File, по команде New система создаст файл указанного типа с нулевой длиной (в этом случае собственно значение, соответствующее имени Null File, можно не указывать). Если создать значение ключа с именем Data и указать в нем бинарные данные, эти данные станут изначальным содержимым нового документа. Можно также создать значение FileName и указать имя шаблонного файла, который будет скопирован в текущий каталог в качестве нового создаваемого файла под указанным вами именем. Наконец, в значении ключа Command можно указать имя программы, которая будет запущена для инициализации нового файла.
ПРОГРАММИРОВАНИЕ в РЕЕСТРЕ
Реестр предназначен для хранения параметров приложений, которые должны оставаться неизменными при перезагрузках операционной системы. Для манипуляции данными Реестра предоставлен широкий набор функций API. Используя их вместе с небольшим кодом на языке С, вы сможете решить любую задачу, возникающую при работе с Реестром.
Таблица 4 Перечень API функций для работы с реестром
Имя функции |
Описание функции |
RegCloseKey |
Закрыть открытый ключ реестра |
RegConnectRegistry |
Подключиться к удаленному реестру |
RegCreateKeyEx |
Создать новый подключ |
RegDeleteKey |
Удалить ключ |
RegDeleteValue |
Удалить значение |
RegEnumKeyEx |
Перейти к следующему подключу (каждый раз возвращает новый ключ) |
RegEnumValue |
Перейти к следующему значению (каждый раз возвращает новое значение) |
RegFlushKey |
Внести значения ключа в реестр (чтобы убедиться в том, что все изменения сохранены на диске) |
RegLoadKey |
Загрузить ключ из специального файла (см. также RegSaveKey) |
RegOpenKeyEx |
Открыть ключ |
RegQuerylnfoKey |
Запросить информацию о ключе |
RegQueryValueEx |
Прочитать значение |
RegReplaceKey |
Заменить ключ после перезапуска системы |
RegSaveKey |
Записать ключ в файл |
RegSetKeySecurity |
Установить разрешения на доступ к ключу |
RegSetValueEx |
Установить значение |
RegUnloadKey |
Выгрузить набор значений |
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.