сделать стартовой
  в избранное
  Гостивая
 
На главную
Обо мне, моих друзьях и т.д
 
Хочешь поболтать? Заходи!!!
Мой форум!
Напиши мне пару строк
 
Проги для системы, Windows, Tweaker'ы и тд
Проги для mp3, графики., кодеки
Всё остальное
 
Документы по настройке Windows, реестр и тд
Исходники, компоненты и тд для Delphi 6
Статьи по Хаку, Взлому
 
Скрипты на php
Шаблоны сайтов
Учебники по PHP
 
Здесь всё понятно!
Boot screen, logon'ы для Windows XP
Ссылки, самые нужные!

Rambler's Top100




Как отомстить врагу. Добавляем приложение в Автозагрузку

В статье "Как отомстить "врагу" средствами Windows.pas" я обещал рассказать, как добавить приложение в StartUp. Так что читайте и впитывайте. Сейчас мы разберем несколько вариантов алгоритма.

Можно просто скопировать исполняемый файл в папку "Автозагрузка", узнав ее местонахождение с помощью функций модуля ShlObj.pas.

program StartUp;

{$APPTYPE CONSOLE}
uses
ShlObj, //!!
SysUtils,
Windows;

var

Folder: Pchar; //путь к StartUp
List: PitemidList; //список "специальных" папок
begin

//ищем папку
SHGetSpecialFolderLocation(0,CSIDL_STARTUP,List);
new(folder);
SHGetPathFromIDList(List,folder);
//Нашли? Переходим в директорию StartUp
ChDir(folder);
//копируем файл
CopyFile(PChar(ExtractFilePath(paramStr(0)) + 'StartUp.exe'), 'StartUp.exe', true); //укажите имя своего EXE файла
end.

Теперь загляните в папку "Автозагрузка". Если вы указали в функции имя СВОЕГО файла, он должен быть уже там :).

Обратите внимание на три выделенных строки. С их помощью можно найти путь к любой системной папке, указав в функции SHGetSpecialFolderLocation соответствующую константу: CSIDL_DESKTOP для рабочего стола, CSIDL_FONTS для шрифтов и т.д.

А теперь более простой способ - запись ключа в секцию Run реестра. Ниже в одной процедуре совмещено и его создание, и удаление.


Uses Registry;
//............
procedure ChangeReg(StrName: ShortString; delete: boolean);
var
reg: TRegistry;
begin
Reg := nil;
try
reg := TRegistry.Create;
reg.RootKey := HKEY_LOCAL_MACHINE;
reg.LazyWrite := false;
reg.OpenKey('Software\Microsoft\Windows\CurrentVersion\Run',false);
if not delete then reg.WriteString(StrName, Application.ExeName)
else reg.DeleteValue(StrName);
reg.CloseKey;
reg.free;
except
if Assigned(Reg) then Reg.Free;
end;
end;
procedure TForm1.AddBtnClick(Sender: TObject);
begin
ChangeReg('My App',false); //добавляем в Автозагрузку
end;

procedure TForm1.RemoveBtnClick(Sender: TObject);
begin
ChangeReg('My App',true); //удаляем из Автозагрузки
end;

 

Вот и всё. Если что не удалось - пишите, мы вам поможем.

  || на главную || Обо мне || System || Media || Хумор || Для Винды || Гостевая || Ссылки ||

Хостинг от uCoz

Хостинг от uCoz