Главная страница
    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.06 c
3-1119434430
snowman2002
2005-06-22 14:00
2005.07.31
Вопрос по локальным базам данных


14-1121020009
Фонарь
2005-07-10 22:26
2005.07.31
Кто и как придумывает слова?


1-1121179551
SergP.
2005-07-12 18:45
2005.07.31
Как подождать пока Word напечатает документ?


11-1103387164
gsv
2004-12-18 19:26
2005.07.31
Как изменить цвет выделенного элемента в TKolTreeView ?


4-1117626873
AlexTregubov
2005-06-01 15:54
2005.07.31
Как нарисовать рамку вокруг TEdit?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский