Программирование на Delphi и не только Январь, 2008 | Программирование на Delphi и не только

Продолжаем серию «Сделай сам», посвящённую практическому применению Delphi. На этот раз мы поговорим о такой важной составляющей жизни нашего компьютера, как автозагрузка. При загрузке Windows могут запускаться самые разные приложения: от системной панели (вы её можете узнать по характерным для неё часам) до программы оптимизации реестра. Все мы любим устанавливать новые программы. А некоторые из них, дабы мы с ними никогда не расставались, втихую прописывают себя в автозагрузку. Вот и получается, что со временем Windows загружается всё дольше и дольше. А всё потому, что с ней за компанию запускаются различные «удобняшки», антивирусы (а иногда и их анти-сородичи) и т.п.

Вывод из всего вышесказанного: время от времени нужно проводить «зачистку» в автозагрузке. Продвинутыми пользователями это делается при помощи редактора реестра и Блокнота, а все остальные используют специальные программы. Давайте посмотрим, что нам предлагает Windows для управления автозагрузкой. После недолгих поисков была найдена программа MsConfig (лежит она в каталоге …\Windows\System). MsConfig позволяет просматривать список файлов, запускающихся вместе с Windows и удалять элементы из автозагрузки с возможностью восстановления. Программа обрабатывает файл Win.ini, папку «Автозагрузка» и следующие ключи реестра: HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run, HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run и HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServices.

Теперь, когда есть с чем сравнить, сделаем свою программу для управления автозагрузкой. Вот что наше творение будет уметь делать к концу статьи: 1) Всё, что умеет MsConfig, за исключением восстановления удалённых из автозагрузки файлов; 2) Добавлять новые файлы в автозагрузку и изменять пути к существующим;

3) Обрабатывать большее количество ключей реестра, чем MsConfig.

Теперь немного теоретических сведений: 1) В Win.ini есть два параметра: Load и Run. Все файлы, имена которых записаны в этих параметрах через пробел, будут загружаться при старте Windows. А значит, в именах файлов не должно быть пробелов. Этого легко добиться при помощи функции sysutils.ExtractShortPathName (filename).

2) В реестре есть «автозагрузочные» ключи с одинаковыми названиями: Run и RunOnce. Одна пара находится в разделе HKEY_LOCAL_MACHINE, а другая – в HKEY_CURRENT_USER. В связи с этим, в нашей программе будем осуществлять переход между разделами при помощи двух компонентов TradioButton (см. рис. 1).

Читать полностью »