| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Общие вопросы > Достаем из папки в реестре имена всего что там,во! |
| Автор: JoKeR13 21.6.2007, 13:46 |
| И снова драсти!!! И снова я обращаюсь к вам за помощью, значит так: Мне оч оч нужно в программе из определенного каталога в !реестре! достать имена всех имеющихся там ДВОИЧНЫХ ПАРАМЕТРОВ!!! да да именнно имена а не значения-зная имена. Дело в том что одна программа в реестре под именами двоичных параметров хранит путь к оч нужному файлу путь может меняться вот мне и нужно его вытащить при этом там может быть путь к нескольким файлам вооот.. Извените я сам не понял что я написал но вы люди опытные уверен разберетесь. Заранее благодарен, жду ответа, спасибо!!! |
| Автор: _hunter 21.6.2007, 14:08 |
| так в чем проблема? береш RegEnumValue и перебираеш все значения. если lpType == REG_BINARY -- это твое значение. делай с ним что хош (запоминай имя)... |
| Автор: Snowy 21.6.2007, 14:35 |
| TRegistry.GetKeyNames TRegistry.GetValueNames Вернут тебе список. Останется только отфильтровать двоичные через TRegistry.GetDataType |
| Автор: JoKeR13 21.6.2007, 16:15 |
| Большое спасибо вам за ответ!!! Но если вы посмотрите на мой "ранг" то увидите надпись новичок :( извените но не могли бы вы описать не много поподробнее как вытенуть и вывести например в мемо я тут покапался получилось следующее: 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). Все еще жду!!! |
| Автор: Snowy 21.6.2007, 16:36 |
| 1. Используй TStringList, а не TStrings. 2. Ты забыл его создать. Вот и ошибка - попытка доступа к несозданному объекту. 3. Компилится, но не факт, что не ругается - читай сообщения компилятора. 4. Не надо использовать глобальные переменные. Юзай локальные. |
| Автор: JoKeR13 21.6.2007, 17:12 | ||
Огромное всем спасибо за помошь еслиб мог понаставил бы вам репутации но не могу сори, наконец все заработало если камуто понадобиться то полностью это выглядит так:
внимание когда выводите в мемо начинайте не с 1 а с 0 а то не будет первой строки!!! ВСЕМ СПАСИБО!!!!! Добавлено через 4 минуты и 26 секунд Software\Microsoft\Office\12.0\Outlook\Catalog ууупс гыы пропал все таки :-(( Ещер заз спасибо добабаченья. |
| Автор: Snowy 21.6.2007, 18:15 |
| Ты забыл list уничтожить. На работу программы это конечно не скажется, но память утекает... |
| Автор: MetalFan 22.6.2007, 14:20 |
| а зачем этот лист вообще нужен то? |