Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2005.08.14;
Скачать: [xml.tar.bz2];

Вниз

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

 
ctranik   (2005-06-11 22:37) [0]

Здравтствуйте

Подскажите пожалуйста как с помощью API-функций получит из ключей реестра значения следующих типов :
- REG_DWORD
- REG_BINARY

а то у меня ничего неполучается

Заранее благодарен


 
Ученик   (2005-06-11 22:53) [1]

Пример в Delphi?\Source\Rtl\Common\Registry.pas


 
Anatoly Podgoretsky ©   (2005-06-11 23:03) [2]

И как у тебя не получается?


 
ctranik   (2005-06-12 11:51) [3]


> Anatoly Podgoretsky

привет

использую API -функцию RegEnumValue (
                        HKEY hKey,
                        DWORD dwIndex,
                        LPTSTR lpValueName,
                        LPDWORD lpcbValueName,
                        LPDWORD lpReserved,
                        LPDWORD lpType,
                        LPBYTE lpData,
                        LPDWORD lpcbData) ,
там есть параметр " LPBYTE lpData ", в который загружаются данные, так вот если тип данных  " REG_SZ" то всё нормально пишется в мой список (TstringList), а вот если тип данных "REG_DWORD " или " REG_BINARY " то в мой список записывается только имя параметра а сами данные нет.

Что я должен делать ?


 
Просто Джо ©   (2005-06-12 15:14) [4]

Разреши поинтересоваться: ты что в качестве значения для параметра lpValueName так прямо и передаешь экземпляр TStringList? Весело, однако. Уточни, пожалуйста, а лучше приведи кусок своего кода, а то будет совсем грустно.


 
ctranik   (2005-06-13 20:43) [5]

Просто Джо, привет
в параметр lpValueName ,я непередаю никакой экземпляр TStringList
вот функция котороя отвечает за поиск типа значений и самих данных в открытом ключе.
Возникнут вопросы отвечу , только помоги пожалуйста понять как прочесть Двоичные данные, со строковыми данными функция справляется без проблем.


procedure FindValue(CK:HKey;Path,GlobalTargetkey,CurrentTargetKey:string;Select:boolean;var OutList:TstringList);
var
valuelist:tstringlist;
SubBuffer:array[0..1001] of char;
Data: array [0..1001] of byte;
subbufersize:cardinal;
subindex,datasize,datatype:integer;
s:string;

begin

valuelist:=tstringlist.Create;
subindex:=0 ; subbufersize:=1001; datasize:=1001;

while RegEnumValue(ck,subindex,subbuffer,subbufersize,nil,@datatype,@data,@datasize)<> ERROR_NO_MORE_ITEMS do begin
s:=strpas(subbuffer);
if s="" then s:="&#207;&#238; &#243;&#236;&#238;&#235;&#247;&#224;&#237;&#232;&#254;";

case Select of
 true :   valuelist.Add(s+" : "+ PChar(@data));

 false:  begin
          if pos(CurrentTargetKey,s)>0 then valuelist.Add(s+" : "+PChar(@data))
          else
           if pos(CurrentTargetKey,PChar(@data))>0 then valuelist.Add(s+" : "+PChar(@data));
         end;  //false
end;//case

inc(subindex);
subbufersize:=1001; datasize:=1001;
end; //while

if (select=true)and(valuelist.Count>0) then begin
  outlist.Add("[");
  outlist.AddStrings(valuelist);
  outlist.Add("]");
end//if
else
if (select=false)and(valuelist.Count>0) then begin
  outlist.Add(GlobalTargetkey+" -- "+path);
  outlist.Add("[");
  outlist.AddStrings(valuelist);
  outlist.Add("]");
end;
valuelist.Free;
end;

> Просто Джо


 
Просто Джо ©   (2005-06-14 01:00) [6]

Посмотри исходники метода TRegistry.GetValueNames в модуле Registry.pas - там все просто до безобразия.



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

Форум: "WinAPI";
Текущий архив: 2005.08.14;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.013 c
14-1122299520
oldman
2005-07-25 17:52
2005.08.14
Драйвера для флэш-карт...


14-1122285961
wnew_
2005-07-25 14:06
2005.08.14
Отпуск!!!


3-1120454140
ANB
2005-07-04 09:15
2005.08.14
Как грамотно выполнить асинхронный ExecSQL в ODAC (Oracle)


10-1099556750
sands
2004-11-04 11:25
2005.08.14
Callbacks &amp; CORBA


4-1119341979
SamProf
2005-06-21 12:19
2005.08.14
Помогите юзать чужие окна.....





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