Welikeit.Ru | |
|
| |
|
|
Делфи - Уроки - Delphi для приколистаСегодня, как ты догадался, нам предстоит закодить прогу-прикол. Поэтому запасись пивом и фисташками, чтобы подготовить свой мозг к принятию новой инфы. Эту прогу я решил сделать несколько отличной от типичных "образцов" жанра, но показать при этом возможности большинства прог, что я видел (и не видел) в инете. Наше произведение при первом запуске будет обеспечивать себе постоянную автозагрузку (зачем лишний раз напрягать юзера запуском?), не будет особо заметна для жертвы (только по Ctrl-Alt-Del) а прикалываться- много, часто и по разному :) Так что я прекращаю базарить и перехожу к кодингу, поэтому изволь запустить Delphi :) Для начала обеспечим себе невидимость. Ведь наша жертва должна полагать, что ее мучают багипроклятого MD, а не злобные приколы коллеги по отделу :) Поэтому делай project--> view source и убивай в появившемся окошке все после {$R *.RES}. Заместо этой ботвы вдолби следующее:
Это даст нам невидимость в таскбаре (или, как говорит одна моя знакомая, на панели задач :)). Теперь иди в свойства формы (object inspector) и меняй Left и Top на -200. Можно и больше (-31337, например ;)), в зависимости от размеров формы. Это такой хитрый финт, чтобы главное окно проги оказалось за пределами видимости юзера. Можешь теперь запустить прогу и убедиться в ее незаметности. AUTORUN Создавай для формы событие OnCreate (object inspector--> вкладка events) и выжигай там письмена: var win: TIniFile; //Добавь к Uses еще и IniFiles, а то работать не будет
Это, как ты понял, давно всеми забытый способ автозагрузки- из win.ini. Но не бойся, я так сделал не из-за большой любви к win 3.11, просто оригинальности захотелось :) CODUS PRICOLIZMUS Кидай на форму три таймера (вкладка system палитры компонент). Для двух последних выставляй свойство enabled в false (отключай их, то есть), а вот первый таймер бери за жабры и делай ему нужный interval. Это будет частота, с которой наша прога будет выкидывать разные фортели. Создай этому таймеру событие OnTimer (посредством даблклика :)) и объяви там в разделе var переменную pricol типа integer. Этой переменной мы затем будем присваивать случайно значение (помнишь randomize?), и затем выкидывать разные приколы в зависимости от этого значения. Всего приколов будет пять, поэтому пиши: procedure TForm1.Timer1Timer(Sender: TObject); PRICOL №0- ЗАКРЫВАЕМ КНОПКУ "ПУСК" С 1995 года кнопку "пуск" отменяли, закрывали, меняли на ней надпись и заставляли бегать по экрану тысячами способов. А все потому что она- всего лишь кнопка на окошке под названием "панель задач". И мы знаем класс этого окошка (Shell_TrayWnd). Поэтому все это в нашей, кодерской, власти! Долой "пуск":
...И если на нашей рулетке выпадет зеро, то вместо пуска будет зиять черный квадрат Малевича. Вернуть ее можно так:
Хотя тебе это, я уверен, не пригодится ;) PRICOL №1- ПРОСТОЙ И ЗЛОБНЫЙ Представь себе ситуацию. Сидит твой друг за служебным компом и рассказывает о платонической любви и непорочном зачатии ;) Как вдруг выскакивает окошко Internet Explorer с весьма, хм, содержательной картинкой. Реакцию публики представить нетрудно. А делать будем вот так:
А если не хочешь показывать свой шедевр в эксплорере, то делай:
И картинка окажется натянутой на десктоп. Ну разве не круто? Только не говори потом, что я подучил :) Сын за отца не отвечает =) PRICOL №2- БЕЗБАШЕННАЯ МЫШКА Как тебе понравится, если вдруг мышка начнет "вырываться из рук" и давить куда попало? Я думаю, если твой "друг" уже прочитал нашу статью, то скоро у тебя будет шанс проверить это на своей шкуре :) Потому что злобный приятель напишет следующее:
А в обработчик OnTimer второго таймера он набьет:
//Случайным образом изменим координату X //имитируем нажатие левой кнопки //..и ее отпускание Так что постарайся опередить своего друга-приколиста :) Обмани ближнего своего, ибо ближний обманет тебя и возрадуется /Библия Приколиста/. :) PRICOL №3- СПОКОЙНОЙ НОЧИ, WINDOWS! Для начала кинь на свою форму какую- нибудь картинку (лучше- фотку предполагаемой жертвы), потому как нам придется показать окно программы. Не просто так, конечно, а с подвохом:
Выглядит это достаточно эффектно, поэтому подумай сначала, надо ли себя так афишировать. А то у меня один приятель подумал что к нему на комп попал злобный вирус и тут же купил лицензию на AVP (!). А когда он не помог, просто форматнул себе винт :) Да, и еще: функция SetSystemPowerState не работает в Win2k и NT. Поэтому не шуми и не заваливай меня письмами по этому поводу :) PRICOL №3- СПОКОЙНОЙ НОЧИ, WINDOWS! На самом деле я не хотел писать про этот прикол. Потому что ничего о нем не знал :) Но сегодня я наткнулся в инете на прогу, которая несколько раз меняет разрешение экрана и при этом выдает дурацкие сообщения об ошибках. Не знаю, прикольно это или нет, но мне захотелось описать тебе ее работу. Пиши (сколько раз я уже сказал это слово:)) все в тот же первый таймер:
А в OnTimer третьего таймера вот этот могучий текст:
END OF THE WORLD Ну вот мы и написали полноценную пограмму-прикол. Это оказалось совсем не сложно, и это при том, что прога вышла понавороченнее многих своих собратьев :) Автор: Лозовский Александр, klouniz@mail.ru |
|
Copyright © 2006-09.
| |