Как получить данные из реестра

Как получить данные из реестра, пример работы с реестром

Как получить данные из реестра

Вот кусочек моей программы. Здесь я читаю из реестра параметры настройки
принтера с целью определить ориентацию страницы: книжная или альбомная, и
размер бумаги.

#define HKEY_LOCAL_MACHINE 0x80000002
#define KEY_READ 0x00020019
#define ERROR_SUCCESS 0
DECLARE INTEGER RegOpenKeyEx IN ADVAPI32;
INTEGER HKLM, STRING SubKey, INTEGER Dummy, INTEGER Access,ж
INTEGER @hKey
DECLARE INTEGER RegCloseKey IN ADVAPI32 INTEGER
DECLARE INTEGER RegQueryValueEx IN ADVAPI32;

INTEGER hKey, STRING ValueName, INTEGER Dummy, INTEGER Type,;
STRING Data, INTEGER @Size

* это ветвь реестра, в которой находится интересующий нас параметр
SubKey="SystemCurrentControlSetcontrolPrintPrinters"+PrinterName
* Открываем эту ветвь и получаем её handle
IF RegOpenKeyEx(HKEY_LOCAL_MACHINE,SubKey,0,KEY_READ,@hKey) !=
ERROR_SUCCESS
MESSAGEBOX("Не удаётся получить параметры настройки принтера "+;
"из системного реестра.",16,"Печать")

RETURN
ENDIF
* "Default DevMode" - это название параметра, значение которого я хочу
* получить. Сначала определяем, сколько памяти нам нужно зарезервировать,
* чтобы принять этот параметер
nSize=0
RegQueryValueEx(hKey,"Default DevMode",0,0,0,@nSize)
* Резервируем память
DevMode=SPACE(nSize)
* Теперь считываем значение параметра
RegQueryValueEx(hKey,"Default DevMode",0,0,@DevMode,@nSize)
* Заканчиваем работать с реестром
RegCloseKey(hKey)

*
dmOrientation=ASC(SUBSTR(DevMode,45,1)) && 1 - книжная; 2 - альбомная
dmPaperSize=ASC(SUBSTR(DevMode,47,1)) && 8 - A3; 9 - A4

A.Пинигин, СБОРНИК прибамбасов для VFP по материалам конференций, литературы и собственных разработок. г. Рига E-mail: apinigin@olainfarm.lv

Автор: A.Пинигин

Автор публикации

не в сети 2 месяца

Joys

2
Комментарии: 4Публикации: 227Регистрация: 25-06-2000
0
Оставить комментарий
Авторизация
*
*
Генерация пароля