HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > ПРОГРАММИРОВАНИЕ > С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #11  
Старый 19.02.2010, 18:21
DiffiT
Участник форума
Регистрация: 15.12.2009
Сообщений: 138
С нами: 8634346

Репутация: 16
По умолчанию

а по поводу реестра, у кого-нить есть рабочий исходник? А то я офигеваю с типов PAnsiChar и Cardinal
Всё никак с параметрами угадать не могу))))

Последний раз редактировалось DiffiT; 19.02.2010 в 18:23..
 
Ответить с цитированием

  #12  
Старый 19.02.2010, 18:28
transserg
Участник форума
Регистрация: 02.07.2008
Сообщений: 132
С нами: 9399214

Репутация: 52
По умолчанию

DiffiT что именно хочешь с реестром делать. пример чтения и поиска есть... записать написать не сложно

Последний раз редактировалось transserg; 19.02.2010 в 18:34..
 
Ответить с цитированием

  #13  
Старый 19.02.2010, 18:49
transserg
Участник форума
Регистрация: 02.07.2008
Сообщений: 132
С нами: 9399214

Репутация: 52
По умолчанию

Код:
Procedure ScanRegistry(RootKey:HKEY;SubKey:String);
  var
    hSubKey:HKEY;
    NumKey,NumValue:DWORD;
    NameKey:Pointer;
    NameValue:Pointer;
    BufSize:DWORD;
    KeyError,ValueError:integer;
  begin
    NumKey:=0;
    NumValue:=0;
    BufSize:=2048;
    if ThreadExit then
      exit;
    GetMem(NameValue,BufSize);
    GetMem(NameKey,BufSize);
    try
      if RegOpenKeyEx(RootKey, PChar(SubKey),0,KEY_ALL_ACCESS,hSubKey)=ERROR_SUCCESS then
        begin
          ValueError:=RegEnumValue(hSubKey,NumValue,NameValue,BufSize, nil, nil, nil, nil);
          if PChar(NameValue)<>'' then
            begin
              ResultAnalize(RootKey,PChar(SubKey),NameValue);
            end;
          inc(NumValue);
          while ValueError=ERROR_SUCCESS do
            begin
              BufSize:=2048;
              try
                ValueError:=RegEnumValue(hSubKey,NumValue,NameValue,BufSize, nil, nil, nil, nil);
                if ValueError=ERROR_SUCCESS then
                  if PChar(NameValue)<>'' then
                    begin
                      ResultAnalize(RootKey,PChar(SubKey),NameValue);
                      inc(TotalValue);
                    end;
              finally
                inc(NumValue);
              end;
            end;
          Sleep(2);
          KeyError:=ERROR_SUCCESS;
          while KeyError=ERROR_SUCCESS do
            begin
              BufSize:=2024;
              KeyError:=RegEnumKeyEx(hSubKey,NumKey,NameKey,BufSize,nil,nil,nil,nil);
              inc(TotalKeys);
              if KeyError=ERROR_SUCCESS then
                if SubKey='' then
                  ScanRegistry(RootKey,PChar(Concat(SubKey,PChar(NameKey))))
                else
                  ScanRegistry(RootKey,PChar(Concat(SubKey,'\',PChar(NameKey))));
              inc(NumKey);
            end;
        end;
    finally
      FreeMem(NameKey);
      FreeMem(NameValue);
      RegCloseKey(hSubKey);
    end;
  end;
процедура обхода дерева реестра
первый параметр подраздел один из
Код:
                      HKEY_CLASSES_ROOT 
                      HKEY_CURRENT_USER 
                      HKEY_LOCAL_MACHINE
                      HKEY_USERS           
                      HKEY_PERFORMANCE_DATA 
                      HKEY_CURRENT_CONFIG   
                      HKEY_DYN_DATA
второй параметр это ключ с которого начнется перебор если пустой то будет перебирать с корня под раздела
Код:
ResultAnalize(RootKey,PChar(SubKey),NameValue);
процедура анализа в которой ты собственно и удовлетворяют ли считанные данные условию поиска
 
Ответить с цитированием

  #14  
Старый 19.02.2010, 18:53
transserg
Участник форума
Регистрация: 02.07.2008
Сообщений: 132
С нами: 9399214

Репутация: 52
По умолчанию

вот часть кода на чтение значения
Код:
  var
    hSubKey   : HKEY;
    MyValType : DWORD;
    BufSize   : DWORD;
    Buf: Pointer;
.....
      if RegOpenKey(RootKey, SubKey,hSubKey) = ERROR_SUCCESS then
        try
          if RegQueryValueEx(hSubKey, ValueName, nil, @MyValType, nil, @BufSize) =ERROR_SUCCESS then
            begin
              GetMem(Buf, BufSize);
              try
                if  RegQueryValueEx(hSubKey, ValueName, nil, @MyValType, Buf, @BufSize) =ERROR_SUCCESS then
                  begin
                      end;
......
SubKey "путь" до ключа в реестре
ValueName имя параметра
Buf указатель на значение параметра
 
Ответить с цитированием

  #15  
Старый 19.02.2010, 18:54
DiffiT
Участник форума
Регистрация: 15.12.2009
Сообщений: 138
С нами: 8634346

Репутация: 16
По умолчанию

Цитата:
Сообщение от transserg  
DiffiT что именно хочешь с реестром делать. пример чтения и поиска есть... записать написать не сложно
мне простейщие операции чтение\запись))) функции уже до меня объявлены, а с параметрами борода
 
Ответить с цитированием

  #16  
Старый 19.02.2010, 18:55
transserg
Участник форума
Регистрация: 02.07.2008
Сообщений: 132
С нами: 9399214

Репутация: 52
По умолчанию

DiffiT стукни в асю =)
 
Ответить с цитированием

  #17  
Старый 19.02.2010, 18:57
DiffiT
Участник форума
Регистрация: 15.12.2009
Сообщений: 138
С нами: 8634346

Репутация: 16
По умолчанию

RegQueryValueEx(hSubKey, ValueName, nil, @MyValType, nil, @BufSize)
вот в этих сцабаках наверное и есть проблема
 
Ответить с цитированием

  #18  
Старый 19.02.2010, 19:12
transserg
Участник форума
Регистрация: 02.07.2008
Сообщений: 132
С нами: 9399214

Репутация: 52
По умолчанию

Код:
hSubKey: HKEY;
ValueName:Pchar;
MyValType:DWORD;
BufSize:DWORD;
 
Ответить с цитированием

  #19  
Старый 19.02.2010, 20:05
iGlass
Познающий
Регистрация: 14.05.2009
Сообщений: 92
С нами: 8944114

Репутация: 5
По умолчанию

Цитата:
Сообщение от sn0w  
пока на нее не подсел переходи на цпп)
Сорри за оффтоп, но почему дельфи так не любят? Что в ней нет, что есть в cpp?
 
Ответить с цитированием

  #20  
Старый 19.02.2010, 21:34
Tigger
Познавший АНТИЧАТ
Регистрация: 27.08.2007
Сообщений: 1,107
С нами: 9846041

Репутация: 1177


По умолчанию

Цитата:
Сообщение от iGlass  
Сорри за оффтоп, но почему дельфи так не любят? Что в ней нет, что есть в cpp?

Мдя уж...
 
Ответить с цитированием
Ответ



Предыдущая тема Следующая тема
Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Литература Delphi Sams С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby 2 19.03.2010 19:46
Скачать Delphi 7, помощь. _casper_ С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby 20 08.12.2009 04:54
Virus.Win32.Induc.a – новый вирус для Delphi ErrorNeo Уязвимости 37 26.08.2009 00:33
Virus.Win32.Induc.a или "Снова записки новичка" _=(mac)=_ Защита ОС: вирусы, антивирусы, файрволы. 5 24.08.2009 23:34
Помогите с WinAPI в Delphi EST a1ien С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby 13 12.10.2006 11:06



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.