Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.03.19;
Скачать: CL | DM;

Вниз

Использование функции RegQueryValueEx()   Найти похожие ветки 

 
Варяг ©   (2005-12-27 22:29) [0]

Вопрос заключатся в следующем при вызове функции RegQueryValueEx(),
возникает ошибка которая связана с неправильным указание  параметров.

RegQueryValueEx(Hkey:HKEY,lpValueName:PansiChar,
   lpReserved:Pointer,lpType:PDWORD,lpData:PByte,
   lpcbData:PDWORD);
где по моему пониманию:
Hkey - дескриптор раздела;
lpValueName-имя считываемого параметра;
lpReserved- указатель на что-то ???
lpType- тип параметра(REG_SZ,REG_DWORD и т.д. );
lpData- буфер под значение переменной;-?
lpcbData- размер буфера;-?

Проблема заключается в следующем:
1) при указании lpType = REG_SZ пишет "Несовместимые типы Integer и PDWORD "
  но при замене на nil ошибка уходит,но странность RegSetvalueEx()
  воспринимала REG_SZ без проблем !?
2) lpData,lpcbData - объявляю переменную Data, и как результат пишет ошибку
  совместимости типов Integer и PDWORD .
 
Привожу пример кода, может кто знает как помочь?

Function RegEdit:boolean ;
Var
MyKey:HKey;
Error:LongInt;
Data:byte;
Begin

 Error:= RegOpenKey(HKEY_CURRENT_USER,PChar("Control Panel\Desktop"),MyKey);
Error:= RegQueryValueEx(MyKey,PChar("Wallpaper"),0,nil,Data, SizeOf(Data);
if Error=ERROR_SUCCESS Then ShowMessage("ok")
              Else ShowMessage("no") ;

Else ShowMessage("No");
RegDeleteKey(MyKey);
end;


 
Sumor   (2005-12-28 00:20) [1]

lpType  и lpData это указатели на соответствующие данные, в первом случае указатель на место, куда система запишет тип ключа, во втором случае на данные, например на строчку с завершающим нулём.

Function RegEdit:boolean ;
Var
 MyKey:HKey;
 Error:LongInt;
 Data:PByte;
 DType : DWORD;
Begin

GetMem(Data, 256);

Error:= RegOpenKey(HKEY_CURRENT_USER,PChar("Control Panel\Desktop"),MyKey);
Error:= RegQueryValueEx(MyKey,PChar("Wallpaper"),0,&DType,Data, 256);
if Error=ERROR_SUCCESS Then ShowMessage("ok")
             Else ShowMessage("no") ;

Else ShowMessage("No");
RegDeleteKey(MyKey);
FreeMem(Data);
end;



Страницы: 1 вся ветка

Текущий архив: 2006.03.19;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.04 c
15-1140781534
Сатир
2006-02-24 14:45
2006.03.19
Подавление сообщений Excel


15-1140616689
Silica
2006-02-22 16:58
2006.03.19
Документация


8-1129292374
Creep1
2005-10-14 16:19
2006.03.19
компонент MediaPlayer


4-1134983285
soi
2005-12-19 12:08
2006.03.19
Работа с LPT портом.


9-1126037651
аматор
2005-09-07 00:14
2006.03.19
добавить персонаж