Скрин-сейвер своими руками (Delphi) - Delphi;C;VB - Программирование - Каталог статей - Персональный сайт
SgW32 Суббота, 10.12.2016, 23:21
Главная | Регистрация | Вход Приветствую Вас Гость | RSS
Меню сайта

Категории каталога
BAT [1]
Все о батниках
Delphi;C;VB [2]
Пишем проги...
Assembler [0]

Наш опрос
Каких программ на сайте не хватает?
Всего ответов: 72

Главная » Статьи » Программирование » Delphi;C;VB

Скрин-сейвер своими руками (Delphi)
Скрин-сейвер своими руками (Delphi)
INATTACK.RU :: Архив документации для хакера

Многие думают, что вирусов в скрин-сейверах быть не может. Это не совсем так. Ведь скрин-сейвер - обычная программа с расширением *.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);

Как вы видите, скрин-сейвер - обычная программа. Так что вмонтировать сюда какой-нить вирь-код не составит трудности.

INATTACK.RU :: Архив документации для хакера



Источник: http://www.inattack.ru
Категория: Delphi;C;VB | Добавил: moneywed (21.04.2008)
Просмотров: 1194 | Комментарии: 1 | Рейтинг: 0.0/0 |
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Форма входа

Поиск

Друзья сайта

    Integral Calculator
    Enter a function to integrate:

    Variable:

    Limit Calculator
    Enter a function to compute its limit:
    Limit variable: Compute at: Limit type

Статистика

Copyright Sgw32 Corporation © 2016 Используются технологии uCoz