![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Реестр API [D6, WinXP]
illy © (2005-11-17 22:57:00)Здравствуйте!
Загвоздка с функцией RegEnumKey.
procedure TForm1.ReadReg_API(Hkey_: HKEY);
var
Key: HKEY;
ErrorCode,i,j: integer;
SubKeyCount: Cardinal;//PDWORD;
ValuesCount: Cardinal;//PDWORD;
MaxSizeSubKey: Cardinal;//PDWORD;
Count: integer;
MaxSize: integer; //DWORD;
list,list1: Tstringlist;
str: string;
Pstr: PChar;
begin
ErrorCode:= RegOpenKeyEx(Hkey_,'Software' , 0, KEY_READ, Key);
if ErrorCode = ERROR_SUCCESS then
try begin
list:= TStringlist.Create;
try
ErrorCode:= RegQueryInfoKey(key,nil,nil,nil,@SubKeyCount,@MaxSizeSubKey,
nil,@ValuesCount,nil,nil,nil,nil);
count:= SubKeyCount;
MaxSize:= MaxSizeSubKey;
if ErrorCode = ERROR_SUCCESS then
for i:= 0 to count-1 do
begin
ErrorCode:= RegEnumKey(key,i,@Pstr,MaxSize+1);
str:= Pstr^;
list.Add(str);
end;
memo1.Lines:= list;
finally
list.Free;
end;end;
finally
RegCloseKey(Key);
end;
end;
Нужно получить список всех субключей, но функция ничего невыдает, а в присвоении str:= Pstr; прога вылетает в ошибку.
Подскажите чево я тут накрутил плиз?
icWasya (2005-11-18 11:34:00) [1]А посмотреть как ЭТО сделано в TRegistry ?