Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Работа с реестром Windows


котэ ©   (2010-02-27 20:04:00) 

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

Возник вопрос

Предыстория:
установил на "Win7" "office 2003", все было нормально, до тех пор пока не переустановил отдельный компонент этого пакета. При запуске "выскакивает" окно "Windows Installer" или т.п. и так каждый раз. После долгих поисков нашел проблему. В интернете ее связывают с ограниченным доступом к реестру в Windows Vista и выше. И действительно, заглянув в реестр (с пом. прогр. "Редактор реестра") увидел, что к некоторым разделам вообще нет доступа (никакого) и владелец не установлен, причем разделы явно такие, что не нуждаются в драконовской безопасности. Решение проблемы - использование программы subinacl.exe (работает в текстовом режиме экрана), но я не знаю имен тех недоступных разделов, поэтому запрашиваю обработку всего "HKEY_CLASSES_ROOT", а это занимает оч. много времени. Хотя проблема действительно решается (инсталлятор запускается еще один раз и все, ОС не сбоит).

Поставленное ТЗ

моя программа должна обрабатывать реестр (желательно "не спеша" - чтобы не сильно мешать работе других программ), находить в нем разделы с отсутствием доступа и неуказанным владельцем, затем сама или посредством subinacl установить владельца и дать к ним доступ.

Можете что-нибудь посоветовать?

Спасибо!
=^_._^=


Anatoly Podgoretsky   (2010-02-28 12:04:00) [1]

Чистильщика реестра это особый класс троянов.


KilkennyCat   (2010-02-28 06:24:00) [2]


> Не понимаю от чего, собственно, столь высокая критичность
> к моему вопросу

Здесь не приветствуется вредоносность программ.


котэ   (2010-02-28 02:41:00) [3]


> Поймаю, убью

поймаю, загрызу =^_._^=

Не понимаю от чего, собственно, столь высокая критичность к моему вопросу, можно просто забыть о изменении прав реестра и сосредоточится на вопросе лишь анализа его веток (у меня есть образ системного диска, когда система перестает загружаться делаю полный откат, неоднократно меня спасал, софт - "acronis").


Германн   (2010-02-28 01:52:00) [4]


> их эффективность сомнительна, если они предварительно не
> отслеживали процесс установки программы.

+1
Поэтому иногда пользую программы типа Ashampoo.


KilkennyCat   (2010-02-28 01:46:00) [5]


> А что, в этот один сотый раз программы с потолка возьмёт
> название ветки реестра?

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


Германн   (2010-02-28 01:33:00) [6]


> Да-да, вываливается четыре тыщи ссылок и говорится, что
> это все "можно преспокойно удалить".

Эт точно. Давно положил на подобные поделки.


Игорь Шевченко   (2010-02-28 01:18:00) [7]

Демо ©   (28.02.10 01:06) [12]


> Есть вполне адекватные


Видел только одну - MS-овскую RegClean. Вот она адеватная, но удаляет крайне немного - то, что осталось в пользовательском HKCR бесхозного, в смысле чего из InProcServer на диске нету (сейчас нету, а если завтра появится ?)

Все остальные - увы, неадекватные. Из последних неадекватных Wise Registry Cleaner, который почистил заодно историю у Far-а и еще у половины софта, ну и данные инсталлятора умерли тоже, в результате из Add/Remove Programs что-то не сносится, а требует оригинального диска.

Оно ж все умное, незнамо какое.


> Да и процесс ведь проходит под полным контролем


Да-да, вываливается четыре тыщи ссылок и говорится, что это все "можно преспокойно удалить".


Демо   (2010-02-28 01:08:00) [8]


> > Демо ©   (27.02.10 22:51) [9]До. Вот запишет моя программа
> в реестр что-то один раз, а обратится на сотый запуск. и
> как определить, мусор эта запись, или нет?


Да не надо для определения ссылок на реестр мониторить процесс записвания.


Демо   (2010-02-28 01:06:00) [9]


> KilkennyCat ©   (27.02.10 23:01) [10]
> > Демо ©   (27.02.10 22:51) [9]До. Вот запишет моя программа
> в реестр что-то один раз, а обратится на сотый запуск. и
> как определить, мусор эта запись, или нет?


А что, в этот один сотый раз программы с потолка возьмёт название ветки реестра?


> Игорь Шевченко ©   (27.02.10 23:44) [11]
> > Затем позволяют этот мусор из реестра и с диска вычистить.
> > ..нафиг, нафиг. Эти кривые пионерские поделки или создают
> видимость удаления или вышибают табуретку из-под инсталляторов.
>


Есть вполне адекватные. Да и процесс ведь проходит под полным контролем. Кто же разрешит грязными лапами программе в реестр лезть и бесконтрольно удалять что-то?


Игорь Шевченко   (2010-02-27 23:44:00) [10]


> Затем позволяют этот мусор из реестра и с диска вычистить.
> ..


нафиг, нафиг. Эти кривые пионерские поделки или создают видимость удаления или вышибают табуретку из-под инсталляторов.


KilkennyCat   (2010-02-27 23:01:00) [11]


> Демо ©   (27.02.10 22:51) [9]

До.
Вот запишет моя программа в реестр что-то один раз, а обратится на сотый запуск. и как определить, мусор эта запись, или нет?


Демо   (2010-02-27 22:51:00) [12]


> эффективность их лишь в случае установки до Установки.


Не прав ты, Костя.
Эти программы анализируют реестр на предмет ссылок, регистраций ActiveX, ссылки на DLL и прочие ресурсы.
Затем позволяют этот мусор из реестра и с диска вычистить...


KilkennyCat   (2010-02-27 22:07:00) [13]


> Лучше найди деинсталляторы сторонние и аккуратно попытайся
> почистить ими реестр.

эффективность их лишь в случае установки до Установки.
На всякий случай повторю еще раз - данной проблемы нет, есть лишь криворукость того, кто ставит.


Демо   (2010-02-27 21:52:00) [14]


> Anatoly Podgoretsky ©   (27.02.10 21:32) [6]
> Поймаю, убью


Ужжжас... Кого и за что?


Anatoly Podgoretsky   (2010-02-27 21:32:00) [15]

Поймаю, убью


Демо   (2010-02-27 20:25:00) [16]

Например, Uninstall Tool


Демо   (2010-02-27 20:24:00) [17]


> котэ   (27.02.10 20:12) [2]
> > Ни в коем случае не трогать эти ветки реестра, не переустанавливать
> > владельца.среди тех веток, который нельзя трогать есть
> ветки созданные инсталлятором, который затем сам с ними
> ничего сделать не может (мое виденье проблемы))


После смены владельца можешь больше не загрузить систему. 99%.

Лучше найди деинсталляторы сторонние и аккуратно попытайся почистить ими реестр.


KilkennyCat   (2010-02-27 20:20:00) [18]

эта проблема не только на вин7. и связана с неграмотной установкой.


котэ   (2010-02-27 20:12:00) [19]


> Ни в коем случае не трогать эти ветки реестра, не переустанавливать
> владельца.

среди тех веток, который нельзя трогать есть ветки созданные инсталлятором, который затем сам с ними ничего сделать не может (мое виденье проблемы))


Демо   (2010-02-27 20:07:00) [20]


> Можете что-нибудь посоветовать?


Ни в коем случае не трогать эти ветки реестра, не переустанавливать владельца.


Наверх

Титульная страница Поиск, карта сайта Написать письмо