(495) 925-0049, ITShop интернет-магазин 229-0436, Учебный Центр 925-0049
  Главная страница Карта сайта Контакты
Поиск
Вход
Регистрация
Рассылки сайта
 
 
 
 
 

Автозагрузка в Delphi (исходники)

Источник: pcnext
Darkmaster

Очень часто программы прописывают себя в автозагрузку. Зачем это нужно? Да, в общем-то, цели разные. Иногда бывает нужно, чтобы программа грузилась вместе с операционной системой, например, как электронный органайзер. Или если вы пишите троян или вирус - это тоже может пригодиться. Цели разные и способы тоже. Мы рассмотрим самые популярные способы. В принципе стандартным способом автозагрузки в Windows XP является реестр. Если говорить по конкретней, то ключ HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/CurrentVersion/Run. Именно сюда прописывается большинство программ. Прописать сюда свою программу очень просто, делается это так:

var Reg:TRegistry;
begin
Reg:=TRegIniFile.Create;
Reg.RootKey:=HKEY_LOCAL_MACHINE;
Reg.OpenKey('Software',true);
Reg.OpenKey('Microsoft',true);
Reg.OpenKey('Windows',true);
Reg.OpenKey('CurrentVersion',true);
Reg.OpenKey('Run',true);
Reg.WriteString('Здесь пишем что угодно, как правило имя проги',Application.ExeName);
Reg.CloseKey;
Reg.Free;

Код очень простой и не должен вызвать каких-либо трудностей, если вы работали с реестром. Кстати, не забудьте добавить в раздел uses модуль Registry для работы с реестром. Между прочим, необязательно добавлять программу именно в Run, ведь еще есть RunOnce и RunOnceEx . Еще пункт Run присутствует в ключе HKEY_CURRENT_USER . Ну, думаю с реестром все понятно, давайте рассмотрим следующий вариант. Это win.in . Чем он хорош, да тем, что о нем не каждый юзер знает, или знает, но все же не смотрит, а значит туда можно вбивать свои пакостные программы. Еще одним плюсом win.in является полная совместимость с Windows 9х. А это дополнительное преимущество. Для начала добавьте в uses модуль inifiles, а не то проект просто не откомпилируется. Ну и запишем следующий код:

var Win:TIniFile;
warn:string;
begin
Win:=TIniFile.Create('Win.ini');
Win.ReadString('windows','run',warn);
if warn<>Application.ExeName then
Win.WriteString('windows', 'run',Application.ExeName);
Win.Free;

Теперь я объясню, что здесь происходит. В разделе var мы объявили две переменных Win типа TIniFile и warn типа строка. В первой строке кода (после ключевого слова begin) мы открываем файл. Далее читаем его параметр run. Если наша объявленная строка неравна приложению, то записываем вместо этой строки наше приложение. Освобождаем память. Как видите все очень просто. В принципе, все это, конечно, хорошо. Но как удалить программу из автозагрузки. Здесь просто нужно вместо строки Win.WriteString('windows', 'run',Application.ExeName); вставить строку удаления автозапуска Win.Delete('windows', 'run',Application.ExeName); Вот исходник удаления из автозапуска:

var Win:TIniFile;
warn:string;
begin Win:=TIniFile.Create('Win.ini');
Win.ReadString('windows','run',warn);
if warn=Application.ExeName then Win.Delete('windows', 'run',Application.ExeName);
Win.Free;

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

Ссылки по теме


 Распечатать »
 Правила публикации »
  Обсудить материал в конференции Micro Focus/Borland » [2]
Написать редактору 
 Рекомендовать » Дата публикации: 02.02.2007 
 

Магазин программного обеспечения   WWW.ITSHOP.RU
Bamboo
NERO 2016 Classic ESD. Электронный ключ
Kerio Operator - Server (incl 5 users, 1 yr SWM)
Quest Software. SQL Navigator for Oracle
Microsoft Visual Studio Professional 2017 Sngl OLP 1License NoLevel
 
Другие предложения...
 
Курсы обучения   WWW.ITSHOP.RU
 
Другие предложения...
 
Магазин сертификационных экзаменов   WWW.ITSHOP.RU
 
Другие предложения...
 
3D Принтеры | 3D Печать   WWW.ITSHOP.RU
 
Другие предложения...
 
Новости по теме
 
Рассылки Subscribe.ru
Информационные технологии: CASE, RAD, ERP, OLAP
Новости ITShop.ru - ПО, книги, документация, курсы обучения
Программирование на Microsoft Access
CASE-технологии
СУБД Oracle "с нуля"
Программирование на Visual Basic/Visual Studio и ASP/ASP.NET
Краткие описания программ и ссылки на них
 
Статьи по теме
 
Новинки каталога Download
 
Исходники
 
Документация
 
Обсуждения в форумах
Ищем команду Java-разработчиков (5)
АО Тандер (сеть магазинов Магнит, крупнейший частный работодатель РФ) ищет команду...
 
Работа в интернете.. (3)
Может тут кто имеет опыт работы в сети? И подскажет мне что нить?
 
Кто, что знает за карту рассрочки Совесть? (1)
Иногда требуется купить что-то очень нужное, но выделить средства нет возможности. В этом случае...
 
Написание программ для микроконтроллеров AVR, PIC, ARM, STM32 (15)
Напишу любую программу на любом искусственном языке. Профессиональный программист. Основная...
 
Разработка устройств на микроконтроллерах (31)
Профессиональный программист. Основная специализация: МИКРОКОНТРОЛЛЕРЫ, АССЕМБЛЕР для любых...
 
 
 



    
rambler's top100 Rambler's Top100