Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.023 c
1-1139728417
Vacek
2006-02-12 10:13
2006.03.19
Как сделать проект always on top?


2-1141333316
serko
2006-03-03 00:01
2006.03.19
String


1-1139925539
BFG9k
2006-02-14 16:58
2006.03.19
Событие с несколькими обработчиками


3-1138614007
Barsky
2006-01-30 12:40
2006.03.19
Чтение Number из файла Paradox (*.db)


2-1141566700
ctudent
2006-03-05 16:51
2006.03.19
Помогите разобраться с ошибкой!




   Наверх