Скрин-сейвер своими руками (Delphi) - Programming <!--%IFTH1%0%-->- Articles<!--%IFEN1%0%--> - Каталог статей - V . S . I . S ( Volgograd site on information safety )
Суббота, 31.07.2010, 17:08
Приветствую Вас USER | RSS
Главная
Регистрация
Вход
Меню сайта

Категории каталога
breaking and research of programs [10]
Programming [37]
Cryptography and enciphering [2]
Breaking and protection [2]
Networks and reports [0]
Windows vs Unix [1]
About the Internet programs [0]
the Miscellaneous [0]
Lessons on programming [0]
freaking [1]
carding [1]
to beginners [10]

Мини-чат
200

Наш опрос
Довольны ли Вы W Vista ?
Всего ответов: 36

Главная » Статьи » Articles » Programming [ Добавить статью ]

Скрин-сейвер своими руками (Delphi)

Многие думают, что вирусов в скрин-сейверах быть не может. Это не совсем так. Ведь скрин-сейвер - обычная программа с расширением *.scr. А доказательством этого есть следующий пример:
И так, запускай Delphi, дави крысой File>New>Application.Далее делаем так, чтобы нашу форму никто не мог «перекрыть». Для этого для свойства формы FormStyle устанавливаем значение равное “fsStayOnTop” (без кавычек соответственно). Для свойства “Color” (всё той же формы) устанавливаем значение “clBlack”, для свойства “BorderStyle” значение bsNone и для свойства “WindowState” устанавливаем значени равное “wsMaximized”. (*Все выше указанные действия можно было сделать или в инспекторе объектов или программно. Я это сделаю программно *).

Идем дальше. Теперь нам понадобятся 5 процедур:

1. FormСreate –Скрываем курсор мыши и производим несколько. настроек
2. OnTime –здесь код самой заставки
3. OnMouseMove-отлавливаем движение мыши.
4. FormHide –Показываем Курсор.
5. TimeToExit –Процедура для обработки сообщений.

Опиши в разделе var твоего Unit’a новую переменную с именем crs типа TPoint.В ней мы будем хранить координаты мыши во время запуска проги.
Расположи на форме компонент Timer и создай обработчик события OnTimer для него, затем напиши там следующую строчку:

Form1.Canvas.TextOut(random(Form1.ClientWidth),random(Form1.ClientHeight),'@');

Суть этой строки такова: в произвольном порядке на форме рисуется символ ‘@’ с помощью процедуры TextOut, которая имеет 3 значения: 1-ое: горизонтальное положение, 2-ое: вертикальное положение и 3-я: текст для вывода.

В обработчике события OnСreate для формы напиши следующий код:


RanDoMiZe;
//Устанавливаем интервал для таймера
Timer1.Interval:=300;
//Устанавливаем обработчик событий для сообщений
Application.OnMessage:=TimeToExit;
//Прячем курсор мыши
ShowCursor(False);
with Form1 do
begin
//Выставляем размер выводимого текста
Canvas.Font.Size:=17;
//Выставляем имя текста
Canvas.Font.Name:='COmicSansMs';
//Выбираем цвет текста
Canvas.Font.Color:=clRed;
//Получаем позицию курсора
GetCursorPos(crs);

{Настраиваем форму}

//Скрываем Заголовок
BorderStyle:=bsNone;
//Позиция формы "поверх всех"
FormStyle:=fsStayOnTop;
//Цвет фона для формы
Color:=clBlack;
//Растягиваем на весь экран
WindowState:=wsMaximized;
end;

В радела interface опиши следующую процедуру:

Procedure TimeToExit(var Msg : TMsg; var Handled : boolean);

Затем кликай по ней правой кнопкой и в появившемся меню выбери “Complete class at cursor”.

В появившейся процедуре напиши следующие.

//ЕСли полученно сообщени
if (Msg.message = WM_KEYDOwn) //Нажата кнопка на клавиатуре
or (Msg.message = WM_LButtonDown)//Нажата левая кнопка мыши
or (Msg.message = WM_RButtonDown)//..правая
or (Msg.message = WM_SysKeyDown)//Нажата системная кнопка
or (Msg.message = WM_MButtonDown)//Нажата средняя кнопка мыши

then close;

Едем дальше.
Создай обработчик события OnMouseMove для формы, затем напиши там следующий код:

if (abs(crs.X-X) > 5)
or (abs(crs.Y-Y) > 5) then close;

Здесь мы закрываем окно только мосле того, как мышка двинулась больше чем на 5 пикселей всторону.

Создай обработчик события OnHide для формы, затем напиши там следующий код:

//Запрещаем сообщения
Application.OnMessage:=nil;
//Возращаем курсору видимость
ShowCursor(True);

Как вы видите, скрин-сейвер - обычная программа. Так что вмонтировать сюда какой-нить вирь-код не составит трудности.
Категория: Programming | Добавил: ^KeRnEl^ (06.08.2008)
Просмотров: 221 | Рейтинг: 0.0/0 |
Всего комментариев: 0

Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Форма входа
E-mail:
Пароль:

Поиск

Друзья сайта

Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0


V . S . I . S ( Volgograd Site on Information Safety ) © 2010
Хостинг от uCoz