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

Вниз

RegEnumKeyEx непоказывает все подключи,   Найти похожие ветки 

 
ctranik   (2005-06-03 17:32) [0]

Всем привет

такое дело API-функция RegEnumKeyEx непоказывает все подключи, немогу понять почему?

procedure TForm2.Button1Click(Sender: TObject);
var
Buffer:array[0..1000]of char;
mykey:HKey;
s:string;
index,err,countsubkey:integer;
v:cardinal;

begin

if RegOpenKeyEx(HKEY_Classes_Root,"",0,KEY_Read ,MyKey)=ERROR_SUCCESS then begin
RegQueryInfoKey(mykey,nil,nil,nil,@countsubkey,nil,nil,nil,nil,nil,nil,nil);// информация об открытом ключе

index := 0;
err:=RegEnumKeyEx(MyKey,index,Buffer,v,nil, nil, nil, nil);// попытка получить имя первого подключа

while countsubkey>index do begin
if err=ERROR_SUCCESS then memo1.Lines.Add(inttostr(index)+"  "+strpas(buffer));
inc(index);
err:=RegEnumKeyEx(MyKey,index,Buffer,v,nil, nil, nil, nil); //попытка получить имя следущего подключа
end;//while

RegCloseKey(mykey);
end;//if

end;



 
gdaujk ©   (2005-06-04 08:44) [1]

Вроде всё правильно... Посмотри, как это сделано в VCL.


 
gdaujk ©   (2005-06-04 08:48) [2]

Это не мой код, не знаю, работат или нет. Сам разбирайся :-) Может поможет...


function RegEnum(RootKey: HKEY; Name: String; var ResultList: String; const DoKeys: Boolean): boolean;
var
 i: integer;
 iRes: integer;
 s: String;
 hTemp: HKEY;
 Buf: Pointer;
 BufSize: Cardinal;
begin
 Result := False;
 ResultList := "";
 if RegOpenKeyEx(RootKey, PChar(Name), 0, KEY_READ, hTemp) = ERROR_SUCCESS then
 begin
   Result := True;
   BufSize := 1024;
   GetMem(buf, BufSize);
   i := 0;
   iRes := ERROR_SUCCESS;
   while iRes = ERROR_SUCCESS do
   begin
     BufSize := 1024;
     if DoKeys then
       iRes := RegEnumKeyEx(hTemp, i, buf, BufSize, nil, nil, nil, nil)
     else
       iRes := RegEnumValue(hTemp, i, buf, BufSize, nil, nil, nil, nil);
     if iRes = ERROR_SUCCESS then
     begin
       SetLength(s, BufSize);
       CopyMemory(@s[1], buf, BufSize);
       if ResultList = "" then
         ResultList := s
       else
         ResultList := Concat(ResultList, #13#10, s);
       inc(i);
     end;
   end;
   FreeMem(buf);
   RegCloseKey(hTemp);
 end;
end;



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

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

Наверх




Память: 0.45 MB
Время: 0.04 c
14-1121063791
Ega23
2005-07-11 10:36
2005.07.31
Где про Team-Source почитать (скачать demo) можно?


1-1120833892
Alex____
2005-07-08 18:44
2005.07.31
STL


1-1121191737
SpyBoy
2005-07-12 22:08
2005.07.31
Hook или как?


3-1118917400
ivc_andr
2005-06-16 14:23
2005.07.31
Узнать текст запроса и Host


1-1121101074
-virus-
2005-07-11 20:57
2005.07.31
помогите, проблема с файлом.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский