Программирование в системе Windows2000, страница 22

Информацияосостоянии

Системный реестр применяется для хранения информации о состоянии приложения. Для размещения информации о приложении под ключами HKEY_LOCAL_MACHINEи HKEY_CURRENT_USERсоздаются дополнительные ключи. .Ключ HKEY_LOCAL_MACfflNE

применяется для установок, которые относятся ко всему компьютеру или ко всем пользователям компьютера. Ключ HKEY_CURRENT_USERслужит для установок, относящихся только к текущему пользователю. В системном реестре для хранения информации о состоянии используется описанная ниже структура. На рис. 1.51 и 1.52 показана структура, применяемая для приложения. Структура, расположенная под обозначением версии, зависит от приложения.

Информация о состоянии приложения должна записываться в системный реестр каждый раз, когда пользователь закрывает главное окно. При следующем запуске приложения должно быть восстановлено предыдущее состояние и местонахождение окна.

Когда пользователь останавливает систему, при желании можно предусмотреть повторное открытие приложения при последующем запуске системы. Это можно выполнить, введя в системный реестр подключ RunOnce, содержащий один или несколько пунктов, которые должны быть выполнены при перезапуске системы. Приложение должно поддерживать вызов с командной строки, который обеспечивает его перезапуск без вмешательства пользователя. При перезапуске системы команды в подключе RunOnceвыполняются, и этот подключ удаляется. В приложении можно извлечь из системного реестра информацию о состоянии, позволяющую восстановить первоначальное состояние приложения. На рис. 1.53 показан пример структуры системного реестра и образец записи.

Если необходимо повторно открыть несколько экземпляров, в подключ RunOnceследует ввести несколько пунктов.

Подключ RunOnceможно также разместить в ключе HKEY_LOCAL_MACHINE. Однако при использовании этого пункта система выполняет приложение перед своим запуском. Запись системного реестра такого типа должна использоваться, только если ее действие распространяется на всех пользователей компьютера. Например, может потребоваться запустить приложение и получить информацию о пользователе для определения способа запуска системы Windows.

рисунок 1.53. Запись RunOnce системного реестра

Информацияопутидоступа

В системе Windows предусмотрена поддержка предоставления информации о пути доступа к приложению. Если для приложения зарегистрирован путь доступа, система Windows при запуске этого приложения устанавливает в качестве значения системной переменной PATHэтот зарегистрированный путь доступа. Для установки пути доступа к приложению в подключе Арр Pathsключа HKEY_LOCAL_MACHINEнеобходимо внести соответствующую запись. Для этого нужно создать новый ключ с использованием имени выполняемого файла (.ехе) приложения. Под этим ключом должно быть установлено значение .Default, содержащее путь доступа к выполняемому файлу приложения. Если в отдельном каталоге размещаются также другие файлы, например библиотека динамических связей (DLL), путь доступа к этому каталогу должен быть указан в качестве значения Path. На рис. 1.54 показана запись системного реестра с обозначением пути доступа для приложения BACKUP.EXE.

Рисунок 1.54.

Информация о пути доступа к приложению

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

Все динамически загружаемые библиотеки, предназначенные для совместного доступа в масштабах всей системы, должны быть зарегистрированы в подключе SharedDLLключа HKEY_LOCAL_MACHINE. Если запись для библиотеки уже существует, увеличивается на единицу счетчик использования этой записи. На рис. 1.55 показан раздел SharedDLLсистемного реестра.

Расширенияфайлов

Расширения файлов, предусмотренные в приложении для непосредственного доступа пользователей, должны быть зарегистрированы. Это позволяет пользователю различать файлы разных типов по пиктограмме и описательному тексту. Для каждого регистрируемого файла должно быть предусмотрено не менее двух записей: запись ключа расширения файла и запись ключа определения класса. Если расширение файла не зарегистрировано, применяется предусмотренная по умолчанию пиктограмма Windows и всегда отображается расширение файла.