Сохранение информации в реестре Windows

We use cookies. Read the Privacy and Cookie Policy

Сохранение информации в реестре Windows

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

Сохранение элемента информации в реестре осуществляет оператор Save Settings, который автоматически создаст заданный вами параметр, если его в реестре не окажется. Синтаксис оператора следующий:

Save Settings приложение, раздел, параметр, значение

Здесь приложение, раздел и параметр- это имена соответствующих уровней иерархии реестра. Все установки реестра для одной VBA-программы должны размещаться в одной, созданной специально для этой программы ветви реестра (используйте аргумент приложение для идентификации этой ветви). Сохраняемые в реестре данные можно разбивать на разделы и параметры совершенно произвольно, используя при этом произвольные имена.

Если вы назвали свою программу "Случайные цитаты" и хотите добавить в реестр параметры, хранящие информацию о том, сколько раз вызывалось диалоговое окно, содержащее случайную цитату, используйте для этого оператор типа:

SaveSettings "Случайные цитаты", "Параметры", _

"Число вызовов", "6"

Последний аргумент, "6", задает реальные данные, которые должны быть помещены в реестр. На рис. 20.1 приведен результат выполнения этой строки программного кода.

Рис. 20.1. Вид реестра Windows после добавления пользовательского параметра

Подобным образом для извлечения данных из реестра используется функция Get Setting. В ее синтаксисе, показанном ниже, первые три аргумента обязательны, а аргумент по_умолчанию не обязателен:

Get Setting приложение, раздел, параметр, по_умолчанию

Функция Get Setting используется, когда нужно выяснить, какое значение хранится в некотором параметре реестра. В программном коде нужно присвоить значение функции

Get Setting переменной (вроде String или Variant ), например, так:

sngЧисло = GetSetting("Случайные цитаты", "Параметры", _

"Число вызовов")

Последний аргумент, аргумент ло_умолчанию, определяет значение, которое должна вернуть функция Get Setting, если указанный параметр в реестре не найден.

В VBA есть еще две команды, предназначенные для работы с реестром.

* функция GetAllSettings возвращает список всех параметров и их значений

в форме двумерного массива строк.

* Оператор DeleteSetting дает возможность удалить как значение, хранящееся в реестре, так и сам параметр.