PDA

Просмотр полной версии : Проблема с RegEnumKeyEx


Olim
05.08.2008, 05:43
Тут недавно столкнулся с одной проблемой:

var
hRegKey: HKEY;
i: Integer;
KeyCount: longint;
buffer: array [0..255] of char;
buffer_len: dword;
begin
if RegOpenKey(HKEY_CURRENT_USER,'Software\Mail.Ru\Age nt\magent_logins',hRegKey) = ERROR_SUCCESS then
begin
buffer_len := 256;
if RegQueryInfoKey(hRegKey,nil,nil,nil,nil,nil,nil,@K eyCount,nil,nil,nil,nil) = ERROR_SUCCESS then
for i := 0 to KeyCount - 1 do
begin
if RegEnumKeyEx(hregKey,DWORD(i),@buffer,buffer_len,n il,nil,nil,nil) = ERROR_SUCCESS then
MessageBox(0,@buffer,'Key',MB_ICONEXCLAMATION)
else
MessageBox(0,'RegEnumKeyEx error','Error',MB_ICONWARNING)
end
else
MessageBox(0,'RegQueryInfoKey error','Error',MB_ICONWARNING)
end
else
MessageBox(0,'RegOpenKey error','Error',MB_ICONWARNING);
end;
Вот тута вылетает ошибка RegEnumKeyEx error. Не знаю почему :rtfm: Плз, помогите

Rustam Khamidov
05.08.2008, 10:02
У меня несколько подозрений.

1. Что мешало декларировать i как DWORD ?
2. Нужна ли инициализация buffer? Попробуйте перед вызовом функции RegEnumKeyEx, первму элементу буфера придать значение '\0'

Ну и при сравнении с примером использование функции RegEnumEx (http://msdn.microsoft.com/en-us/library/ms724256(VS.85).aspx) так же возможно, но не обязательно, разница в длине буфера. У вас там точно в 256 байт уложится?

Olim
05.08.2008, 18:03
Спасибо, разобрался.
Оказывается, в коде все нормально.
Я вместо RegEnumValue, написал RegEnumКеу :)
Так как в ключе HKEY_CURRENT_USER\Software\Mail.Ru\Agent\magent_lo gins нет дочерних ключей, функция всегда возвращала значение !ERROR_SUCCESS

cascada
08.08.2008, 20:35
Спасибо, разобрался.
Оказывается, в коде все нормально.
Я вместо RegEnumValue, написал RegEnumКеу :)
Так как в ключе HKEY_CURRENT_USER\Software\Mail.Ru\Agent\magent_lo gins нет дочерних ключей, функция всегда возвращала значение !ERROR_SUCCESS

а тебе зачем это? адреса почты тырить?:))))))))))))))))))))))))))

Olim
08.08.2008, 21:37
а тебе зачем это? адреса почты тырить?:))))))))))))))))))))))))))

Создаю программку для восстановления паролей от Mail.ru Agent :naughty: