Поиск:

Ответ в темуСоздание новой темы Создание опроса
> TRegistry - глюки Builder-а? и снова, и опять... %)) 
:(
    Опции темы
BreakPointMAN
Дата 2.8.2005, 23:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Всем привет!

Итак, что имеем:
  • C++ Builder 6 (Build 10.166 Update 4)
  • программу, использующую класс TRegistry для доступа к реестру
  • и операционную систему MS Windows 2000 SP4
Вообщем, все бы ничего, но стал я наблюдать некоторые странные вещи при работе с реестром. А именно в следующих случаях:
  • при установке текущими некоторых ключей (с помощью методов OpenKey/OpenKeyReadOnly)
  • при попытке получить имена субключей в некоторых случаях (с помощью метода GetKeyNames)
Ну, насчет первого пункта, в принципе, можно найти объяснения, например, нехватка прав или попытка доступа к системным ветвям (таким образом у меня не открылись, например, HKEY_LOCAL_MACHINE\SAM\SAM, HKEY_LOCAL_MACHINE\SECURITY и еще ряд ключей). Да и Borland где-то писала, что такого плана вещи читать лучше через WinAPI (если это еще Windows даст... smile )


Но как объяснить следующее?!

При получении имен субключей текущего ключа в некоторых случаях они [имена] оказываются усеченными! Причем, в прямом смысле...
Например, мне возвращается: "Remova" вместо "RemovableMedia" (это ветка HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Enum\STORAGE\) или ".NET CLR Networki" вместо ".NET CLR Networking" (ветка HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Services\) и еще в ряде случаев...

Что еще более странно, иногда в качестве имен субключей возвращаются пустые значения! Например, в разделе HKEY_LOCAL_MACHINE в ветке SYSTEM\ControlSet002\Control\Class\{4D36E96D-E325-11CE-BFC1-08002BE10318} есть два вполне нормальных субключа "0000" и "0001" - вместо них мне возвращается пустая строка...

Всего по всем разделам и веткам реестра таких "глючных" ключей набегает около 200 штук.
В принципе, и хрен бы с ним, не так уж они мне и нужны... Просто интересно, это я что-то делаю не так или это очередной Builder-овский глюк?

Если кому интересно, могу выложить исходник, но вроде бы в нем все верно, там строится дерево TreeView и заполняется именами ключей, все это проделывается рекурсивно...

А если кто сталкивался с такой штукой - плз поделитесь, что вы думаете на этот счет?

Это сообщение отредактировал(а) BreakPointMAN - 2.8.2005, 23:32


--------------------
"Разруха не в клозетах, а в головах." © Ф.Ф. Преображенский (М.Булгаков, "Собачье сердце")
PM WWW ICQ   Вверх
np9mi7
Дата 2.8.2005, 23:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 553
Регистрация: 17.8.2003
Где: Volgograd, Russia

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



Положи исходный текст всего проекта в прицепленные файлы к сообщению в форуме


--------------------
"Я точно знаю то, что ничего не знаю..." Сократ.
evolution project
PM MAIL WWW ICQ MSN   Вверх
BreakPointMAN
Дата 3.8.2005, 00:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(np9mi7 @ 2.8.2005, 23:50)
Положи исходный текст всего проекта в прицепленные файлы к сообщению в форуме

вот исходник...

два замечания:
- никаких потоков или Application->ProcessMessages() не делал, поэтому немного некрасиво оно подвиснет, пока реестр читать будет...
- реестр начинает записываться в дерево по щелчку кнопки, если надо какие-то разделы опустить - можно в ее обработчике их закомментить...



Присоединённый файл ( Кол-во скачиваний: 14 )
Присоединённый файл  grabli.zip 4,94 Kb


--------------------
"Разруха не в клозетах, а в головах." © Ф.Ф. Преображенский (М.Булгаков, "Собачье сердце")
PM WWW ICQ   Вверх
Eugene82
Дата 3.8.2005, 00:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 85
Регистрация: 30.5.2005
Где: г. Ростов-на-Дону

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



BreakPointMAN, сталкивался с примерно похожим для метода GetText. Тема лежит здесь: http://forum.vingrad.ru/index.php?showtopic=58516
а если коротко - у меня была проблема с временными значениями переменных - затирались в буфере. И полностью и частично.
PM WWW ICQ   Вверх
BreakPointMAN
Дата 3.8.2005, 00:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(Eugene82 @ 3.8.2005, 00:30)
BreakPointMAN, сталкивался с примерно похожим для метода GetText. Тема лежит здесь: http://forum.vingrad.ru/index.php?showtopic=58516
а если коротко - у меня была проблема с временными значениями переменных - затирались в буфере. И полностью и частично.

ммм... я читал эту тему, и сие было интересно...
но в моем случае, скорее всего, это не при чем... smile


--------------------
"Разруха не в клозетах, а в головах." © Ф.Ф. Преображенский (М.Булгаков, "Собачье сердце")
PM WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

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

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

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

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


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

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


 




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


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

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