Delphi. Юзер отделался первым легким испугом

Xakep, номер #032, стр. 032-073-1

Horrific (smiandr@mail.ru) www.x-c-r.com

Подписи:

Для Delphi1 - Свойства формы в объектном инспекторе

Для Delphi2 - Обработчик сообщения OnCreate

====Листинг 1====

procedure TForm1.FormCreate(Sender: TObject);

var

ScreenDC:HDC; //Переменная типа HDC

Canvas:TCanvas; //Переменная типа Tcanvas

Begin

ScreenDC := GetDC(0); //Получаем доступ к экрану

Canvas:=TCanvas.Create();//Создаем TCanvas

Canvas.Handle:=ScreenDC;//Присваивает в TСanvas экран

//Устанавливаю размер окна в размеры экрана

Width:=Screen.Width; //Ширина окна:=Ширина экрана

Height:=Screen.Height;

//Копирую содержимое экрана в компонент Image1

Image1.Canvas.CopyRect(Rect(0,0,Image1.Width,Image1.Height),

Canvas, Rect(0,0,Screen.Width,Screen.Height));

//Освобождаю переменную ScreenDC

ReleaseDC(0,ScreenDC);

//Удаляю Canvas

Canvas.Free;

end;

====Листинг 2====

procedure TForm1.FormCreate(Sender: TObject);

var

ScreenDC:HDC;

Canvas:TCanvas;

Begin

ScreenDC:= GetDC(0);

Canvas:=TCanvas.Create();

Canvas.Handle:=ScreenDC;

Width:=Screen.Width;

Height:=Screen.Height;

Image1.Canvas.CopyRect(Rect(0,0,Image1.Width,Image1.Height),

Canvas, Rect(0,0,Screen.Width,Screen.Height));

Image1.Canvas.Pen.Color:=clRed; //Устанавливаю цвет пера в красный

Image1.Canvas.Pen.Width:=20;//Устанавливаю ширину пера

Image1.Canvas.MoveTo(250,150);

Image1.Canvas.LineTo(Image1.Width-250,Image1.Height-150);

Image1.Canvas.MoveTo(Image1.Width-250,150);

Image1.Canvas.LineTo(250,Image1.Height-150);

ReleaseDC(0,ScreenDC);

Canvas.Free;

end;

В прошлом номере я уже познакомил тебя с начальными знаниями по Delphi, достаточными для программирования. Больше я не буду грузить тебя голой теорией, потому что, кроме голых теток, ничего больше в голом виде не может заинтересовать настоящего мэна. Так что сегодня мы напишем первую программу, и ты убедишься, что это очень просто и доступно. Хотя я рассчитывал это сделать немного позже, но что тянуть. Пора направить свой ум правильном направлении и немного пошКодить :).

Предыстория

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

Эффект от запуска проги: жертва (которой ты забросишь прогу) запускает ее. Один раз мигает экран, и больше ничего не происходит. Теперь вместо рабочего стола находится твоя прога, которая отображает рабочий стол. Но жертва этого не знает. Она думает, что видит настоящий рабочий стол, а не твое окно с изображением. Посмотри на этого лама со стороны. Прикольно наблюдать, как он тыкает мышкой по монитору и не может понять, почему ничего не происходит. Единственный способ закрыть прогу - нажать Alt+F4 или снять задачу через Ctrl+Alt+Del.

Начнем?

Запускай Delphi. После запуска перед тобой появится оболочка Delphi и новый пустой проект. Сразу сохрани все это. Для этого выбери "Save All" из меню "File". Сначала тебя попросят ввести имя формы (по умолчанию это Unit1), а затем нужно ввести имя проекта (по умолчанию это Project1). Я эти имена не стал менять, а просто жал на пимпу "Сохранить". Ты можешь задать человеческие имена. Кстати, имя проекта будет использоваться в качестве имени запускного файла. Так что как ты его назовешь, так и будет называться .ехе файл.

Содержание  Вперед на стр. 032-073-2

ttfb: 3.4379959106445 ms