Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Достаем из папки в реестре имена всего что там,во! Прошу помощи! 
V
    Опции темы
JoKeR13
Дата 21.6.2007, 13:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 26
Регистрация: 18.5.2007

Репутация: нет
Всего: нет



И снова драсти!!!

И снова я обращаюсь к вам за помощью, значит так:
Мне оч оч нужно в программе из определенного каталога в !реестре! достать имена всех имеющихся там ДВОИЧНЫХ ПАРАМЕТРОВ!!! да да именнно имена а не значения-зная имена. Дело в том что одна программа в реестре под именами двоичных параметров хранит путь к оч нужному файлу путь может меняться вот мне и нужно его вытащить при этом там может быть путь к нескольким файлам вооот.. 
Извените я сам не понял что я написал но вы люди опытные уверен разберетесь. Заранее благодарен, жду ответа, спасибо!!!
PM MAIL   Вверх
_hunter
Дата 21.6.2007, 14:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 15
Всего: 98



так в чем проблема? береш RegEnumValue и перебираеш все значения. если lpType == REG_BINARY -- это твое значение. делай с ним что хош (запоминай имя)...


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
Snowy
Дата 21.6.2007, 14:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 192
Всего: 484



TRegistry.GetKeyNames
TRegistry.GetValueNames
Вернут тебе список. Останется только отфильтровать двоичные через TRegistry.GetDataType
PM MAIL   Вверх
JoKeR13
Дата 21.6.2007, 16:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 26
Регистрация: 18.5.2007

Репутация: нет
Всего: нет



Большое спасибо вам за ответ!!!

Но если вы посмотрите на мой "ранг" то увидите надпись новичок :( извените но не могли бы вы описать не много поподробнее как вытенуть и вывести например в мемо я тут покапался получилось следующее:

var
  Form1: TForm1; Registry: TRegistry;  s:tstrings; i:integer;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
  Registry: TRegistry;
begin
  Registry := TRegistry.Create;
  Registry.RootKey := hkey_local_machine;
  Registry.OpenKey('ïóòü ê ïàïêå áåç hkey...',true);
  Registry.GetValueNames(s);
  Registry.CloseKey;
  Registry.Free;
  for i:=1 to s.Count-1 do
  memo1.Lines.add(s.Strings[i]);
end;


Компиляция проходит а после нажатия на кнопку Button1Click выскакивает ошибка "project ... raised excaption class EAccessViolaton дальчто что то про адрес в памяти бла бла нажмите чтобы продолжить" 
У кажите пожалуйста где ошибка или что я не так делаю! Заранее благоарен!!!

Добавлено через 10 минут и 5 секунд
Под кучей каракулей подразумеваеться полный адрес кроме раздела HKEY... а ошибку выдает на Registry.GetValueNames(s). Все еще жду!!!
PM MAIL   Вверх
Snowy
Дата 21.6.2007, 16:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 192
Всего: 484



1. Используй TStringList, а не TStrings.
2. Ты забыл его создать. Вот и ошибка - попытка доступа к несозданному объекту.
3. Компилится, но не факт, что не ругается - читай сообщения компилятора.
4. Не надо использовать глобальные переменные. Юзай локальные.
PM MAIL   Вверх
MetalFan
Дата 21.6.2007, 16:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Аццкий Сотона
****


Профиль
Группа: Комодератор
Сообщений: 3815
Регистрация: 2.10.2006
Где: Moscow

Репутация: 62
Всего: 128



Цитата(JoKeR13 @  21.6.2007,  17:15 Найти цитируемый пост)
  Registry.GetValueNames(s);
  Registry.CloseKey;
  Registry.Free;
  for i:=1 to s.Count-1 do
  memo1.Lines.add(s.Strings[i]);

можешь написать просто:
Код

 Registry.GetValueNames(memo1.Lines);


а ошибку выдает потому, что s не создан


--------------------
There are always someone smarter than you...
PM MAIL   Вверх
JoKeR13
Дата 21.6.2007, 17:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 26
Регистрация: 18.5.2007

Репутация: нет
Всего: нет



Огромное всем спасибо за помошь еслиб мог понаставил бы вам репутации но не могу сори, наконец все заработало если камуто понадобиться то полностью это выглядит так:

Код

procedure TForm1.Button1Click(Sender: TObject);
var
  Registry: TRegistry; List:TStringList;   s:tstrings; i:integer;
begin
  list:=TStringList.Create;
  Registry := TRegistry.Create;
  Registry.RootKey := HKEY_CURRENT_USER;
  Registry.OpenKey('Software\Microsoft\Office\12.0\Outlook\Catalog',true);
  Registry.GetValueNames(list);
  Registry.CloseKey;
  Registry.Free;
  for i:=0 to list.count-1 do
  memo1.Lines.add(list.Strings[i]);
end;


внимание когда выводите в мемо начинайте не с 1 а с 0 а то не будет первой строки!!! 
ВСЕМ СПАСИБО!!!!!

Добавлено через 4 минуты и 26 секунд
Software\Microsoft\Office\12.0\Outlook\Catalog 
ууупс гыы пропал все таки :-(( Ещер заз спасибо добабаченья.
PM MAIL   Вверх
Snowy
Дата 21.6.2007, 18:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 192
Всего: 484



Ты забыл list уничтожить.
На работу программы это конечно не скажется, но память утекает...
PM MAIL   Вверх
MetalFan
Дата 22.6.2007, 14:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Аццкий Сотона
****


Профиль
Группа: Комодератор
Сообщений: 3815
Регистрация: 2.10.2006
Где: Moscow

Репутация: 62
Всего: 128



а зачем этот лист вообще нужен то?


--------------------
There are always someone smarter than you...
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0489 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.