Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: WinAPI и системное программирование > Чистка реестра!


Автор: R0nin 31.7.2005, 01:06
Всем знакомы чистильщики реестров! как найти и удалить строку в реестре это сделаю, но как найти строки с ошибками smile smile Помогите пожалуста!

Автор: Zdvig 5.8.2005, 06:41
Если не знаешь все тонкости реестра и его особенности, лучше не лезть. Иначе можно после первого F9 убить все и вся smile

Автор: R0nin 5.8.2005, 14:38
А учится как? smile Есть где нибудь, исходник такого рода программы, я бы разабрался!!!
Реестор нечаянно убить нельзя, винда хранит 5 последних капий реестра! smile

Автор: FRAGNATIC 6.8.2005, 03:14
R0nin убить может и низя! Но я те могу так номутить что те легче будет винду переустановить чем в ней работать дальше) smile

Автор: Droll 6.8.2005, 15:28
Чистильщики реестра уже давно разрабатываются, немало ошибок своих понаделали и понаисправляли. Самый лучший учебник - это Regedit.exe - залез и давай, ищи ошибки... нашел, так исправляй и думай как исправить программно.
Самые частые ошибки, которые исправляют программы в реестре:
- неверные пути к файлам (файл может быть уже удален давно, а путь в реестре к нему прописан). Только тут еще оч. важно убедиться, что это действительно путь к файлу, а не чего-либо еще.
- неверные расширения файлов. Например, расширение существует, а программа уже давным-давно удалена.
- неверные записи про Uninstall - Например, программа давно уже удалена, а вот в "Установка и удаление программ" она еще прописана.
И т.д. ...

Автор: R0nin 7.8.2005, 02:03
To Droll smile Ну мне не надо, супер программа, удаление неверных путей и записи про Uninstall мне бы вполне хватило!!!!

To fragnatik Я и сам намутить могу!!! Я имел ввиду случайно что нибудь изгадить. smile
Добавлено @ 02:04
smile

Автор: Akella 12.8.2005, 09:40
я такими прогами не пользуюсь, толку нет, ну удалит она сотню неверных ссылок, но в реестре столько записей, что эта сотня всё равно, что скидка на "Мерседес" в сотню долларов. smile

Автор: R0nin 14.8.2005, 00:04
Может я так, но все равно хочется! smile

Автор: p0s0l 14.8.2005, 09:59
Цитата(R0nin @ 31.7.2005, 01:06)
но как найти строки с ошибками
В общем случае: прошариваешь всё дерево реестра, смотришь все Value у каждого ключа. Если тип Value = REG_SZ, то читаешь его значение, и проверяешь, является ли значение именем локального файла/папки. Например такой проверкой:
Первый символ = 'C'..'Z'
Второй символ = ':'
Третий символ = '\'
Далее, смотришь, чтобы в строке не было недопустимых символов:
#0..#31 | " : < > * ? и др., не было двух рядом стоящих \\
(еще подумай, какие проверки делать, чтобы не было ложных срабатываний)...

Если все условия выполняются, значит данное значение - имя файла/папки... Проверяй:
Код

if GetFileAttributes(<значение>) = -1 then
begin
//  файла/папки нет, удаляй значение из реестра
end;

Автор: R0nin 15.8.2005, 00:40
попробую так! smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)