Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

книги хакеры / журнал хакер / специальные выпуски / Специальный выпуск 4_compressed

.pdf
Скачиваний:
16
Добавлен:
20.04.2024
Размер:
7.13 Mб
Скачать

 

 

ТЕОРИЯ

 

 

 

>СПЕЦВЫПУСК #4

006D

109

 

 

 

 

 

 

ЛИ” может быть сколько угодно (то есть, может

ÏÎÊÀ

(счетчик меньше либо равно девяти)

знаю такой функции или оператора,

которая

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

быть сколько угодно условий и соответствующих

 

вывести счетчик.

 

сразу выполняет такое действие. Поэтому, нам

 

 

 

 

 

 

 

им действий). А как вообще составлять эти ус-

 

прибавить к счетчику единицу.

нужен шаг детализации - мы опускаемся на

 

 

 

 

 

 

 

ловия? Очень просто: давай оформим нашу за-

 

 

 

один шаг с вершины и разбиваем наше дей-

 

 

 

дачу с герлой:

 

Íó òóò âñå

и так понятно. Идем дальше.

ствие на несколько более простых:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ЕСЛИ (чел пил пивко с друзьями)

АГОРИТМ

АЛГОРИТМОВ

 

ввести значения x,a,b,c.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

топать за подружкой.

 

 

 

найти дискриминант.

 

 

 

 

 

 

 

 

 

 

 

 

ИНАЧЕ ЕСЛИ (чел коннектился с подружкой)

Нда, нисходящая разработка алгоритмов с по-

найти корни.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

топать к пивному ларьку.

шаговой детализацией. В общем-то, эта штука

вывести корни.

 

 

 

 

 

 

 

 

 

ИНАЧЕ

 

 

только звучит сложно. Если ты один раз пой-

 

 

 

 

 

 

 

 

 

 

 

 

Но и эти действия тоже не осуществимы на из-

 

 

 

 

 

 

сесть и задуматься: какого же хрена я

мешь, как с ней работать - считай, что ты ее

 

 

 

 

 

 

 

делал

 

 

 

навсегда

освоил - остается только совершен-

вестных мне языках программирования

-

äå-

 

 

 

 

 

 

 

 

четверть часа назад, если я не пил пи-

ствоваться

в практике :). Ну как, готов? Тогда

лаем еще один шаг детализации:

 

 

 

 

 

 

âî ñ

 

 

 

приступим

-с. Как отмечалось выше, эта фень

ввести x.

 

 

 

 

 

 

 

 

 

 

 

 

друзьями и не коннектился с подруж-

упрощает

разработку больших и сложных алго-

ввести a.

 

 

 

 

 

 

 

êîé?

 

 

 

ритмов.

Смысл ее в том, что она систематизи-

ввести b.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

рует процесс. Короче говоря: технология нисхо-

ввести c.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Тэкс, что там дальше? А, вот, структура повторе-

дящей разработки алгоритмов с пошаговой де-

дискриминант равен разности квадрата b и

 

 

 

 

 

ния. Так же как и структура следования, структу-

тализацией

- это алгоритм разработки алгорит-

четырем

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ра повторения имеет несколько реализаций. Мы

ìîâ. Âîò

сказал-то... :) А почему бы и нет? По-

произведениям a на c.

 

 

 

 

 

 

рассмотрим

îäíó - îíà

Ýòà ôåíü

упрощает разработку

ÅÑËÈ

(дискри-

 

 

 

 

 

 

 

 

универсальная.

минант меньше

íóëÿ)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

больших и

сложных

 

 

 

 

â û -

 

 

 

 

 

 

 

 

ПОКА (условие)

 

 

вести сообщение об

 

 

 

 

 

 

 

 

алгоритмов.

Смысл ее в том,

 

 

 

 

 

 

 

 

действие.

отсутствии корней.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

÷òî îíà

систематизирует

ИНАЧЕ

ÅÑËÈ

 

 

 

 

 

 

 

Åñëè

условие верно - вы-

процесс. Короче говоря:

 

(дискриминант

равен

 

 

 

 

 

 

 

полнить действие, а по-

 

 

 

 

 

íóëþ)

 

 

 

 

 

 

 

 

 

том снова

проверить,

технология нисходящей

 

 

 

ê î -

 

 

 

 

 

 

 

верно ли условие (если

разработки алгоритмов

 

рень равен отношению

 

 

 

 

 

 

 

 

 

 

 

 

 

верно, еще раз выпол-

с пошаговой детализацией

минус b к двум a.

 

 

 

 

 

 

 

нить действие). И так до

ИНАЧЕ

 

 

 

 

 

 

 

 

 

тех пор, пока условие не

- это алгоритм разработки

 

 

ïåð-

 

 

 

 

 

 

 

станет неверным. Быс-

алгоритмов.

 

 

вый корень равен от-

 

 

 

 

 

 

 

тро смотрим два приме-

 

 

 

 

 

ношению суммы минус

 

 

 

 

 

 

 

ра, и идем дальше. За-

 

 

 

 

 

b и корня из

 

 

 

 

 

 

 

 

 

дача один: пить пиво до тех пор, пока не будет

чему у процесса катания на тачке может быть

дискриминанта к двум a.

 

 

 

 

 

 

 

 

 

достигнута необходимая кондиция, потом то-

алгоритм, а у процесса разработки алгоритмов -

второй корень равен отношению раз-

 

 

 

 

 

 

 

пать к толчку :).

 

нет? Тут, как говорится, сам Билл Гейтс велел. А

ности минус b и корня из

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

теперь слушай внимательно. Вся эта технология

дискриминанта к двум a.

 

 

 

 

 

 

 

 

 

ПОКА (чел не достиг кондиции)

осуществляется следующим образом: на основе

вывести первый корень.

 

 

 

 

 

 

 

 

 

 

ïèòü ïèâî.

 

условия задачи (которое нам дают работодате-

вывести второй корень.

 

 

 

 

 

 

 

 

 

 

топать к толчку.

 

ли, преподы, которое мы сами себе придумаем

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

и пр.) составляется одно единственное дей-

Ну вот, теперь любое из этих действий можно

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Чел проверяет: не дошел ли он до кондиции, ес-

ствие, которое полностью характеризует назна-

осуществить практически на любом языке прог-

 

 

 

 

 

 

 

ли нет пьет пиво, потом опять проверят, если

чение разрабатываемого алгоритма. Очень час-

раммирования. Можно также выписать список

 

 

 

 

 

 

 

опять нет - опять пьет пиво. Когда он, наконец,

то это действие совпадет с формулировкой за-

всех существительных ;). Надо еще сказать, что

 

 

 

 

 

 

 

 

 

 

 

 

 

достигает кондиции - пропускает действие

дачи, и это действие называют вершиной алго-

для больших и сложных задач может понадо-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

“пить пиво”, и выполняет следующее за структу-

ритма (скоро поймешь, почему). Например, ес-

биться большее количество шагов детализации.

 

 

 

 

 

рой повторения действие - “топать к толчку”. В

ли стоит задача: найти корни квадратного урав-

Но согласись, что это все же лучше, чем упе-

 

 

 

 

 

этом алгоритме также задействована структура

нения, то псевдокод вершины алгоритма реше-

реться в задачу, не зная толком с какого конца к

 

 

 

 

 

следования (действие “топать к толчку” следует

ния этой задачи так и будет выглядеть:

ней подходить. Тут ты двигаешься по заранее

 

 

 

 

 

 

 

 

 

 

за структурой повторения.

 

 

 

 

протоптанной дорожке (а протоптали ее те са-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

найти корни квадратного уравнения.

мые крутые лбы) и свернуть в неправильную

 

 

 

 

 

Задача два: напечатать все числа от 0 до 9.

 

 

 

сторону тебе вроде как и негде. Ну все, удачных

 

 

 

 

 

 

 

 

 

 

 

 

Но мы ведь не можем это действие осуществить

тебе кодингов и алгоритмов. Мыль, если что не

 

 

 

 

 

 

установить счетчик в нуль.

на каком-либо языке - я, во всяком случае, не

понял.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

110

006E

КОНСТРУКТОР

>СПЕЦВЫПУСК #4

 

J++ ССАМОГО Н

 

ТЕКСТОВЫЙ Р

 

MOOF (MOOF@xakep.ru ; http://MOOF.da.ru )

 

 

 

 

 

без каких-либо дополнительных изменений.

 

 

 

 

То есть, написав программу под Окна, ты мог

 

 

 

 

бы запустить ее и на Юникс, и на Макинтош.

 

 

 

 

Некоторые путают два языка java и javascript.

 

 

 

 

Хоть они и содержат слово ява - это два раз-

 

 

 

 

ных языка. Так вот, Майкрософт в один прек-

 

 

 

 

расный момент решила, что жаба достаточно

 

 

 

 

хороша, но ее надо дополнить расширениями,

 

 

 

 

которые будут работать только под Окнами.

 

 

 

 

Сказано - сделано. Так на свет появился Visual

 

 

 

 

J++.

 

 

 

 

Детство

 

 

 

 

Так выглядит j++ после первого запуска.

 

 

 

 

Не пугайся. Жми на File > New Project. Перед

 

 

 

 

тобой появится диалог, в котором ты можешь

 

 

 

 

выбрать, какой именно тип приложения ты хо-

 

 

 

 

чешь выбрать. Выбери Visual J++ Projects >

 

 

 

 

Applications. И в правом поле выбери

 

 

 

 

Application Wizard. Затем в поле Name введи

 

 

 

 

имя нашей с тобой программы. Пусть она бу-

 

 

 

 

дет называться “XakepPad2k”.

 

екстовый редактор :). Как много в рынок и приобрети среду разработки на паре-

 

 

этом! Ну, в слове этом. Кстати, уга-

тройке компакт-дисков :).

 

 

дай: какая связь между Visual J++ 6

 

 

 

Òот небольшой конторки под назва-

Рождение

 

 

нием Майкрософт (J++ входит в

 

 

 

состав пакета MS Visual Studio 98) и тем самым

Visual J++ это визуальная оболочка к языку

 

 

текстовым редактором? Правильно. Сейчас ты

программирования java (читается как “ява”

 

 

этот редактор напишешь САМ на J++.

или “жаба” :)). Изначально разрабатывалась

 

 

 

 

Sun для написания небольших приложений

 

 

Где достать Visual Studio, ты и сам знаешь. По-

для Интернета. Эти приложения могут испол-

 

 

сети Mitin0-BazaR или другой доступный тебе

няться везде вне зависимости от платформы,

 

 

 

КОНСТРУКТОР

 

 

 

>СПЕЦВЫПУСК #4

006F

111

 

АчАЛА: ПИШЕМ ЕДАКТОР

 

 

 

 

 

Жми “Открыть”. Через несколько секунд запус-

 

крософт: всегда соглашайся.

Займемся нашим XakepPad’ом. Для начала уве-

 

 

 

 

 

тится мастер, с помощью которого мы и будем

 

Молодость

личим размер редактора, а то он какой-то ма-

 

 

 

 

 

 

 

все делать. В первых двух вопросах ничего не

 

ленький. Кликни на заголовке XakepPad’a и уве-

 

трогай, они нам не интересны. Просто сделай

 

 

 

 

личь размер окна, потянув за правый нижний

 

 

 

 

 

 

 

 

 

 

Double Next click :). А вот дальше начинается са-

И вот твое творение перед тобой! На твоем мо-

 

угол - как будто это обычное окно.

 

 

 

 

 

мое прикольное - типа программирование :).

ниторе.

 

 

Теперь тебе понадобится рисовалка иконок. Не

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Ты ведь знаешь, что у каждой программы для

 

 

 

 

знаю как ты, а я пользуюсь прогой IconForge.

 

 

 

 

 

Окон есть такие фишки, как: меню, область, в

 

 

 

 

Это просто ФотоШлеп в мире иконок. Пользо-

 

 

 

 

 

которой ты пишешь текст (у текстовых редакто-

 

 

 

 

ваться им очень легко и просто. Усек?

 

 

 

 

 

ров), строка состояния и панель инструментов.

 

 

 

 

 

 

 

 

 

 

 

 

 

Мне кажется, что нам нужно все. Поэтому ставь

 

 

 

 

И вот ты сотворил нечто такое неповторимое.

 

 

 

 

 

 

 

птички на все пункты и жми Next.

 

 

 

 

Теперь скопируй иконку в каталог с твоим

 

 

 

 

 

 

 

 

 

 

 

проектом.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Åñëè òåáå

не терпится запустить программу,

 

 

 

 

 

 

 

 

 

 

 

нажми

Control+F5. Программа откомпилирует-

 

 

 

 

 

 

 

 

 

 

 

 

ся и запустится. Теперь в каталоге с проектом

 

 

 

 

 

 

 

 

 

 

 

 

будет лежать файл “XakepPad2k.exe”, который

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ты и будешь раздавать своим друзьям.

 

 

 

 

 

 

 

 

 

 

 

 

Но подожди радоваться, он еще очень сырой :(.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Зайди в нем хотя бы в меню Help > About. Не

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

удивляйся, но твоя программа носит имя JPad.

 

 

 

 

 

 

 

 

 

Следующим

шагом мастер Visual J++ предло-

 

А ее иконка: ты видел когда-нибудь подобную

 

 

 

 

 

 

 

 

 

æèò òåáå

вставить в код свои комментарии. За-

 

уродскую иконку? А как насчет названий меню?

 

 

 

 

 

 

 

 

 

áåé! Îíè

нам не нужны. Настоящие кодеры мо-

 

Они все на английском! Что ж, будем править...

Возвращаемся к j++. Выбираем окно

свойств

 

 

 

 

 

 

 

гут разобраться в любой программе и без них :).

 

 

 

 

(Properties) и кликаем на заголовке окна твоего

 

 

 

 

 

 

Жми Next. Далее тебе надо будет выбрать тип

 

Но сперва мы настроим визуальную среду по

XakepPad’a. В свойствах есть такой пункт:

 

 

 

 

 

 

получаемого файла. Конечно, нам нужен только

 

своему вкусу. Для этого закроем окно

“icon”. Сперва он равен “none”, а справа есть

 

 

 

 

 

 

“exe” файл и больше ничего! Выбираем его и

 

“Document Outline” - я думаю, оно тебе не при-

маленькая кнопочка с точкой. Кликни по ней и

 

 

 

 

 

 

 

 

 

 

 

 

жмем на заветную кнопку Next.

 

годится. Потом перетащим окна “Properties”,

выбери свою иконку, нажми на “Открыть”, и

 

 

 

 

 

 

 

 

 

“Project Explorer” и “Task list” влево и совместим

твоя иконка появится в заголовке окна.

 

 

 

 

 

 

 

 

 

их. Ты, конечно, можешь настроить среду по

 

 

 

 

 

 

 

 

 

 

 

 

своему вкусу. Но мне так больше нравится. И

 

 

 

 

 

 

 

 

 

 

 

 

для полного счастья добавим окно “Toolbox”.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Это можно сделать из меню View > Toolbox. Вот

 

 

 

 

 

 

 

 

 

 

 

 

что у меня получилось в итоге.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

А потом

è íà Finish. Åñëè j++ òåáÿ åùå ÷òî-íè-

 

 

 

 

 

 

 

 

 

 

 

 

 

будь спросит (такое иногда бывает :)), вспомни

 

 

 

 

 

 

 

 

 

 

 

 

золотое правило при работе с продуктами Май-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

112

0070

КОНСТРУКТОР

 

 

>СПЕЦВЫПУСК #4

 

 

 

 

 

 

 

 

 

 

Теперь перейдем к названию. В тех же свой-

Настроим панель инструментов. Для этого клик-

 

ствах есть пункт “text”, он отвечает за текст, ко-

íè

íà

прямоугольнике

ñ

 

надписью

 

торый будет написан в заголовке окна. Можешь

“ToolBarImageList”. И во все тех же свойствах, в

 

написать туда любую чушь :).

пункте “images”, можешь загрузить свои картин-

 

 

 

 

 

 

ки для каждого значка на панели инструментов.

 

Твой редактор как настоящий хацкерский эди-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

тор должен всегда быть поверх других окон. Для

 

 

 

 

 

 

 

 

 

 

 

 

 

этого параметр “topmost” установи в положение

 

 

 

 

 

 

 

 

 

 

 

 

 

“true”. Еще он не должен быть виден в таскбаре,

 

 

 

 

 

 

 

 

 

 

 

 

 

параметр “showInTaskbar” ставь “false”. И потом

 

 

 

 

 

 

 

 

 

 

 

 

 

раз редактор есть, то он должен работать на

 

 

 

 

 

 

 

 

 

 

 

 

 

весь экран (“WindowState” - “Maximized”). Мо-

 

 

 

 

 

 

 

 

 

 

 

 

 

жешь настроить еще несколько параметров, та-

 

 

 

 

 

 

 

 

 

 

 

 

 

ких как наличие кнопки свернуть (“minimizeBox”)

 

 

 

 

 

 

 

 

 

 

 

 

 

и развернуть (“maximizeBox”), вид рамки окна

 

 

 

 

 

 

 

 

 

 

 

 

 

(“borderStyle”) и фон формы (“backColor”) по

 

 

 

 

 

 

 

 

 

 

 

 

 

своему усмотрению.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Приступим к русификации. Начнем с меню. Что-

 

 

 

 

 

 

 

 

 

 

 

 

 

áû

изменить имя какого-либо пункта меню, дос-

Потом кликни на самой панели

задач и в свой-

 

таточно щелкнуть один раз на нем и вписать

ствах выбери “buttons” и номер иконки, кото-

нужный тебе текст.

 

 

рый ты хочешь изменить. Тут ты можешь впи-

 

 

 

 

 

 

сать текст всплывающей подсказки, типа: “не

 

 

 

 

 

 

жми, убьет”.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Старость :)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Вроде все хорошо. Все, да не все :). Надо

 

 

 

 

 

 

подправить меню “About”. Для этого в окне

 

 

 

 

 

 

“Project Explorer” два раза кликаем на файле с

 

Значок

“&” означает,

что буква, следующая пос-

именем

“About.java”. Открывается форма

 

“About”.

 

 

 

 

 

 

 

 

 

 

 

ле того значка, станет

горячей. То есть ты нажи-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

маешь Alt+Ф, и открывается меню “Файл”. Если

Для начала проделаем

 

 

 

 

 

 

 

 

ты очень любишь горячие клавиши, то каждому

с ней те же измене-

 

 

 

 

 

 

 

 

 

пункту меню ты можешь назначить свою комби-

ния, что и с самой

 

 

 

 

 

 

 

 

нацию. Для этого кликни справа от имени пункта

программой. В заго-

 

 

 

 

 

 

 

 

 

и выбери понравившуюся комбинацию.

ловке

окна напишем

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

“О самом кульном текстовом редакторе XakepPad2k”. Увеличим размер окна. Теперь кнопка. На ней написано “ОК”. Ну кто же в хацкерских прогах пишет “ОК”? Мы напишем “ХАКНУТЬ”. Для этого кликни на кнопке и открой окно со свойствами. В поле текст, вместо “ОК” впиши то, что тебе по вкусу. В пункте “dock” выбери самую нижнюю часть, и кнопка расположится на всю ширину формы. Все остальное на форме ты нещадно выделяешь и жмешь del.

Теперь тебе нужен “Toolbox”. Выбери закладку “WFC Controls”.

 

 

 

 

 

 

 

 

 

 

 

КОНСТРУКТОР

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

>СПЕЦВЫПУСК #4

 

 

0071

 

 

113

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Там найди элемент Label (на нем нарисована

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

большая буква A). Кликни на нем, а потом

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

кликни на форме. Он должен там появиться.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Открой свойства этого элемента и в свойстве

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

dock выбери Right.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Эта штука прилипнет к правому краю формы.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Напиши в поле текст - что-нибудь о том, каких

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

трудов тебе стоило создание этой программы.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Что все баги ты выловил, и если есть баги, то

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

они не твои, а Майкрософта.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

В Toolbox’е найди элемент “PictureBox” и тоже

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

вынеси его на форму. Это будет твоя фотогра-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

фия. В свойствах PictureBox’а параметр

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

“dock” установи как “Fill”. При этом

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

“PictureBox” займет все свободное место. В

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

параметре “Image” выбери свою любимую фо-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

тографию или логотип XakepPad’a.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

должно произойти, кроме как запуск твоей

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

программы :).

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Прежде чем выкладывать свою прогу

 

íà

 

âñÿ-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

кие софтверные архивы, типа listsoft.ru,

 

down-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

load.ru и т.д., дай ее потестить

 

нескольким

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

друзьям. Вдруг она у них не пойдет. Ведь для

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

всех программ, написанных на Visual J++,

 

 

 

 

 

 

 

 

 

Релиз

 

 

 

 

 

 

требуется виртуальная машина Java от MS. Ее

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Выдели ее

и удали, а заодно удали и две пре-

 

можно скачать по адресу:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

дыдущие

строки. В итоге у тебя должно полу-

www.microsoft.com/java.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Ну вот, мы и подошли вплотную к релизу наше-

читься

следующее:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

го редактора. Жим Control+F5. И не запускает-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ся... Что такое? Ошибка. Помнишь, мы удалили

public About(){

Âîò è âñå.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

все элементы с формы “About”? Так вот, теперь

super();

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

надо чуть-чуть подчистить код. В NaskList’е

initForm();

Больше тебе программ красивых и разных :).

 

 

 

 

 

 

 

 

 

 

 

 

дважды кликни на ошибке, и откроется редак-

}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

тор. Строка, которую нужно удалить, будет за-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ботливо подчеркнута синей линией.

 

Теперь жми Control+F5, и... ничего теперь не

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

114

0072

КОСТРУКТОР

 

 

>СПЕЦВЫПУСК #4

 

НАС РЕБУТ, А

AvaLANche (kolyan@rnc.ru)

 

 

Дарова,

 

peretz!

Помнишь 3-й

рессбар просто: ‘ProgressBar’. Теперь

меняем

 

 

 

 

имя чекбокса на ‘ForceBox’ и кэпшн на

÷òî-òî

 

 

 

 

 

 

ñïåö

X? Íó, ïðî

zаподлострое-

типа ‘Force - с потерей всех данных’, а

вообще

 

 

 

íèå

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

è

прочие

приколы? В

ýòîì

по твоему вкусу. Эта

феня нужна для очередно-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

го глумления над твоим приятелем, заюзающим

 

 

 

спеце

M.J.Ash

делал обзор

çà-

 

 

 

 

 

эту прогу. Представь: жмет он на него, жмет, а

 

 

 

подлянских

 

 

ïðîã

 

 

типа рыгалок,

 

 

 

 

 

 

 

 

винды все равно отрубятся в режиме ‘force’, т.е.

 

 

 

 

 

 

 

 

с-ума-сводилок и прочих эрей-

никто не будет спрашивать у запущенных при-

 

 

 

 

 

 

зеров. А самому такую слабо

ложений разрешения на взлет. Ты еще помнишь

 

 

 

про ма-аленький label (или он у тебя во все ок-

 

 

 

забацать?

 

 

 

 

 

 

 

 

 

 

 

но получился? :))? Вспоминай! Он нам дальше

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

пригодится, а пока лучше назови его ‘Title’ и на-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

пиши в нем заголовок проги, например,

 

 

 

 

 

 

Let the party begin!

 

 

 

 

 

 

 

 

 

 

 

 

‘sHUTiTdOWN’.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Займемся кодингом

 

 

 

 

Èòàê,

начнем!

Берем

твою любимую

 

Дельфю и

 

 

 

 

 

 

 

 

 

 

 

 

 

создаем новый

проект (в меню главного окна:

 

 

 

 

Для начала сделаем самое простое - объявим

 

 

 

File -> New Application). :

 

 

 

 

нужные для работы переменные. Делать это бу-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

дем в разделе implementation, зачем - поймешь

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

сам, если ненадолго включишь мозгу. Итак, вво-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

äèì âîò ÷òî:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

var

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

“Все еще только начинается!” ;-) (C) Санта-Бар-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

progress : integer; //сколько набежа-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

áàðà

 

 

ло в прогрессбаре

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Все свойства объектов меняются просто: выби-

Want2SwitchOff : byte = 0; //сколько

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

раз кликнули по label`у, чтобы прога закрылась

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

раешь жертву истязаний и в Object Inspector`е

ReallyClose : boolean = false;//после

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

редактируешь нужное свойство.

5-ти кликов будет true, и все, финита :)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ß íå

люблю всяких

имен по дефолту, поэтому

 

 

 

 

 

Если ты пока не понял, для чего эти переменные

 

 

 

 

 

 

 

 

 

 

 

сразу

обзываем

появившуюся форму, напри-

 

 

 

 

 

нужны, не кидай ломом в монитор! :) Скоро все

 

 

 

 

 

 

ìåð,

‘SuperForm’ (â Object Inspector`å ïîëå

 

 

 

 

 

станет ясно даже одноногой табуретке :)).

 

 

 

‘Name’), меняем ее заголовок (Caption) на что-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

нибудь типа ‘sHUTiTdOWN - не дай виндам за-

 

 

 

 

 

Теперь нужно сделать так, чтобы сколько наш

 

 

 

сохнуть!’ и делаем ее диалогом: BorderStyle

 

 

 

 

 

бедный ламер на чекбокс ни давил, флажок все

 

 

 

 

 

 

правим на bsDialog. Теперь тащим на форму

 

 

 

 

 

равно стоял. :) Делается это так: кликаешь два

 

 

 

label, checkbox, два radiobutton`а, прогрессбар и

 

 

 

 

 

раза по твоей пимпе с флажком и в открывшем-

 

 

 

 

 

 

таймер. Что, грузанул я тебя? Ну, тогда объяс-

 

 

 

 

 

ся окне редактирования кода, внутри функции

 

 

 

няю в чем маза: label - просто текст на окне,

 

 

 

 

 

ForceBoxClick, пишешь:

 

 

 

 

 

 

 

 

 

 

 

 

checkbox - пимпа с флажком, radiobutton - круг-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

лая фигулька с точкой внутри (все это во вклад-

 

 

 

 

 

ForceBox.Checked := true;

 

 

 

ке ‘Standard’ списка компонентов), progressbar

 

 

 

 

 

 

 

 

 

 

 

 

 

 

показывает прогресс выполнения какого-нибудь

 

 

 

 

Готово! Сейчас сделаем, чтобы прогу обычными

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

процесса (например, когда ставишь софтину в

Сначала обзовем радиобатоны

и поменяем их

средствами (Alf-F4 или крестиком) нельзя было

 

 

 

setup`е, он показывает, сколько файлов скопи-

подписи (Caption): первый -

íà ‘ToPowerOff’,

отрубить. Выбираем вкладку ‘Events’ в свой-

 

 

 

ровано, и т.п.), находится этот бар во вкладке

кэпшн - на ‘повер офф!’; второй

- íà ‘ToReboot’,

ствах формы (все как обычно в Object

 

 

 

‘Win32’, а таймер и в Гондурасе таймер (вклад-

кэпшн - на ‘ребут’. Это все нам дальше приго-

Inspector`е), а там создаем обработчик события

 

 

 

 

 

 

 

 

 

ка ‘System’). Эти фичи нужны для пущего запад-

дится. Таймер называем ‘DeathTimer’, а прог-

OnClose. В нем пишем:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ла, а вот label тебе пригодится во время отлад-

 

 

 

 

 

 

 

 

 

 

 

 

 

ки проги или когда будешь заценять, как она па-

 

 

 

 

 

 

 

 

 

 

 

 

 

шет: через него ты будешь шатдаунера нашего

 

 

 

 

 

 

 

 

 

 

 

 

 

закрывать.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

>СПЕЦВЫПУСК #4

КОСТРУКТОР

0073

115

 

МЫ КРЕПЧАЕМ

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

if (ReallyClose) then

 

мер, который до сих пор не заюзан.

Сечешь

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Action := caFree

 

фишку? Нужен он для того, чтобы на прогрес-

 

 

 

 

 

 

 

 

 

else Action := caNone;

 

сбар полоски двигать и, в конце концов, комп

 

 

 

 

 

 

 

 

 

 

 

 

 

зашатдаунить (или ребутить). Поэтому, как

 

 

 

 

 

 

 

 

 

Этот код не будет позволять окну нашего шат-

обычно, тыкаем по таймеру два раза. Появился

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

даунера закрываться, пока переменная

обработчик события OnTimer. Это событие об-

 

 

 

 

 

 

 

 

 

ReallyClose равна false. А зачем она нужна? Дык

рабатывается после истечения интервала тай-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

надо оставить какой-нибудь бекдор, чтобы са-

мера, который изменяется в свойстве Interval

 

 

 

 

 

 

 

 

 

мому прогу можно было тормознуть! Помнишь,

(единица - тысячная секунды). Поставь там 100,

 

 

 

 

 

 

 

 

 

я говорил, что лейбл пригодится? Время обра-

чтобы у жертвы слишком много времени на раз-

 

 

 

 

 

 

 

 

 

титься к этому title`у! Опять тыкаешь два раза

думье не было. :)

 

 

 

 

 

 

 

 

 

 

 

крысиной пимпой, но только уже по нему. В поя-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

вившемся окне с сорцами пишем (внутри фун-

 

 

 

 

 

 

зовать и более крутыми способами,

тысячами

 

 

 

 

 

 

 

 

 

 

 

 

êöèè TitleClick!):

 

 

 

 

 

 

 

строк и т.п. Но ведь в том и фишка, что так ты

 

 

 

 

 

 

 

 

 

 

 

 

 

 

посылаешь солить веники всех этих куль-коде-

 

 

 

 

Want2SwitchOff := Want2SwitchOff + 1;

 

 

 

 

 

 

 

ров, которые ваяют простейший алгоритм целы-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

if (Want2SwitchOff = 5) then

 

 

 

 

 

 

ми томами строк с ненужными операторами?

 

 

 

 

 

 

 

begin

 

 

 

 

 

 

 

Такой геморрой может быть нужен опять-таки

 

 

 

 

 

 

ReallyClose := true;

 

 

 

 

 

 

 

только для прикола: на олимпиадах по инфор-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

SuperForm.Close();

 

 

 

 

 

 

 

матике, помню, писали проги на объектном пас-

 

 

 

 

 

 

end;

 

 

 

 

 

 

кале (со всеми конструкторами и деструктора-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ми!), которые конвертят числа в разные табли-

 

 

 

 

×òî

ýòî

такое? Ни что иное, как закрывашка (ти-

 

 

 

 

 

 

цы счисления по указанному в примечании к за-

 

 

 

 

ïà

открывашки для пива, только наоборот)!

 

 

 

 

 

 

данию алгоритму :)).

 

 

 

 

Объясняю: после каждого клика по label`у пере-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

менная Want2SwitchOff будет увеличиваться на

 

 

 

 

 

 

По поводу же нашей проги даю домашнее зада-

 

 

 

 

один. Если она станет равной пяти, прога выру-

Осталось

разобрать сам код. Переменная

íèå. :)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

бается! Все просто. :)

 

progress

показывает, сколько у бара процентов

 

 

 

 

 

 

 

 

 

Да будет свет!

 

накипело.

Когда progress доходит до ста, начи-

 

1. Эта прога не будет пахать под NT. В NT`е нуж-

 

 

 

 

 

нается процесс отрубания виндов. Очень меня

 

но получить приоритет шатдауна для процесса,

 

 

 

 

 

 

 

 

радует, что их можно вырубить вызовом всего

 

чтобы он смог отрубить систему. Как это сде-

 

 

 

 

Перейдем к главному - самому процессу отру-

одной функции - ExitWindowsEx. :) У функции

 

лать? Посмотри в Win32 API reference (только

 

 

 

 

бания виндов. Будем мы их отрубать по жела-

этой два параметра: первый - флаг, он говорит

там на Си код в примере :)).

 

 

 

 

 

 

 

нию трудящихся, т.е. так, как трудящиеся соиз-

что делать (EWX_LOGOFF - завершение сеанса

 

 

 

 

 

 

 

 

 

волили выбрать: повер офф, или ребут. Да, еще

пользователя, EWX_REBOOT - ребут, EWX_SHUT-

 

2. Чтобы сделать ‘просто супербизона’, поищи в

 

 

 

 

нужно сделать, чтобы прогрессбар работал. Ду-

DOWN - шатдаун, EWX_POWEROFF - (не догадал-

 

хэлпах Дельфей про реестр виндов и заставь

 

 

 

 

 

 

 

 

маешь, геморрой? Да всего-то пара строк:

 

ся?) повер офф), а второй зарезервирован и, по

 

прогу вносить себя в группу запуска при старте

 

 

 

 

 

 

 

 

уверениям

мелкомягких,

игнорируется.

 

форточек. :) Можешь еще поработать над дизиг-

 

 

 

 

progress := progress + 1;

 

EWX_POWEROFF работает только на машинах,

 

ном. У меня в два счета получилось так:

 

 

 

 

if (progress <= 100) then ProgressBar.StepIt

 

которые его поддерживают, т.е. на ATX`ах. Если

 

 

 

 

 

 

 

 

 

else

 

ты сомневаешься, что за комп у жертвы, лучше

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

begin

 

поставь EWX_SHUTDOWN, который доведет шат-

 

 

 

 

 

 

 

 

 

 

 

if (ToReboot.Checked) then

 

даун до стадии ‘Сеанс Windows завершен. Вы

 

 

 

 

 

 

 

 

 

 

 

ExitWindowsEx(EWX_REBOOT

or

можете выкинуть свой компьютер’. :) Разобрал-

 

 

 

 

 

 

 

 

 

EWX_FORCE, 0);

 

ся с флагами? Для них-то и юзаем if-else: он

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

f (ToPowerOff.Checked) then

 

проверяет, какой радиобокс выбран, и делает

 

 

 

 

 

 

 

 

 

 

 

ExitWindowsEx(EWX_POWEROFF

or

ñâîå äåëî. Voila!

 

 

 

 

 

 

 

 

 

 

 

EWX_FORCE, 0);

 

Outroå

 

 

 

 

 

 

 

 

 

 

 

 

 

 

end

 

 

 

 

 

3. Проявляй инициативу, работай мозгом, тво-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ри! Кодинг - захватывающее занятие, если им

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

А теперь догадайся, куда этот код всунуть надо?

Вот и все! Теперь ты можешь считать себя кру-

 

заниматься с увлечением. Особенно, когда ты

 

 

 

Нет, туда, куда ты хочешь (конечно, можешь за-

тым компутерным zаподлянщиком :). Эта прога

 

творишь не для себя, а для людей (которым бу-

 

 

 

сунуть для опыта :), но в кодинге это не помо-

- самый простой прикол, который ты мог напи-

 

дешь вырубать винды ;)). Удачи тебе в твоих за-

 

 

 

жет)! Все опять очень просто. Был там у нас тай-

сать. Конечно, задачу шатдаунера можно реали-

 

падлостроительных экспериментах!

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

116

 

0074

ХУМОР

 

>СПЕЦВЫПУСК #4

 

HЕТ, НЕХАКЕ

 

ГАДИЛ ПЛОХ

Клим Собакин (mimino@writeme.com)

 

Чтобы не вносить совершенно

Например: восьмичасовой рабочий день начи-

лишних и ненужных подозрений,

нается с получасового чаепития с получасо-

вым перекуром и ими же оканчивается. Плюс

сразу замечу, что

час на обед. Из оставшихся 6 часов полтора

в программировании на С++

заняты разговорами с коллегами и поисками

я ничего не петрю, но знаю

нужного файлика в Интернете, 2 часа отводят-

ся непосредственно работе, остальное время

многих вполне серьезных

проводится в комнате, обычно на карте обоз-

граждан, которые являются

наченной символами “МЭ” и “ЖО”. Убедитель-

ная статистика?

виртуозами в этой области

 

человеческого Знания. Поэтому

Как заметил один знакомый программер:

речь все же пойдет о вещах,

“Сколько в сортире не сиди - всегда найдется

козел, который работает еще меньше, а полу-

неразрывно связанных

чает больше.”

с программированием,

Исходя из полученных данных, делаем вывод

в чем несложно

 

 

о том, что продуктивность работы програм-

убедиться, дочитав

миста напрямую зависит не от скорости про-

этот поучительный

цессора или гигабайт оперативки, а от ком-

материал до конца.

плекса удобств сортира. Как же сделать обыч-

ный туалет вторым полноценным рабочим

Ä

 

 

 

местом? Ответ прост - благоустроить!

авайте начнем издалека: где настоя-

экранирующим воздействием, он помогает

ÊÀÊ?

щий программер

бывает ежедневно

забыть о ежедневных дрязгах и сконцентриро-

не менее 3-х раз? Да, да, то, что ты

ваться на своем Я. Давай убедимся в этом

 

назвал, это, несомненно, правильно,

вместе: на дверь сортира прибивается обыч-

Да, благоустройство потребует некоторых

 

 

да и рифмуется с “где” отлично. Помимо это-

ное бытовое зеркало, таким образом, чтобы в

накладных расходов, но нужно помнить о том,

го, конечно же, у холодильника, пивного ларь-

нем отражалось твое собственное лицо в мо-

что постоянное употребление молока с огур-

ка, на балконе, у кофеварки и... Да, да! Ты

мент фиксации на стульчаке. Что видим да-

цами, селедкой и пивом окупит все затраты на

угадал, в туалете!

 

лее? Далее мы видим максимально отрешен-

сантехнику очень быстро!

 

 

 

 

ное от заевшего быта лицо, на котором напи-

 

Неплохо бы рассмотреть подробнее те ++

сана вся трансцендентальная сущность бытия.

Оборудование, просто-таки необходимое в

(плюсы) обычного стационарного сортира, ко-

Доводилось ли тебе раньше встречать столь

любом случае, больших затрат не потребует.

торые видны невооруженным взглядом любо-

одухотворенное, глубоко мудрое и симпатич-

 

му профессионалу. Надеюсь, тот факт, что

íîå ëèöî?

Во-первых, это пепельница, ибо “Сортир без

программист без сортира как водка без пива,

СКОЛЬКО?

курения, что чай без варенья”.

всеми принят как аксиома? Ну и ладно, тогда

 

начнем.

 

 

 

Во-вторых - книжная полка и 5-10 тематичес-

ЗАЧЕМ?

 

По моим подсчетам средний программер бы-

ких и периодически обновляемых книг, и све-

 

вает в сортире не менее 3-4 раз ежедневно и

жий номер “Х”.

 

 

 

 

проводит там не менее 20 минут за сеанс,

 

Ответ ясен - для того чтобы, как говорится,

особенно в рабочее время. Итого, по самым

В-третьих - сиденье унитазное с подогревом

душевно погадить. Но и для того, чтобы от-

минимальным прикидкам, примерно час-пол-

“Гр¸зы автолюбителя” на случай лютой зимы

дохнуть, подумать, перекурить. Не секрет, что

тора в день. Время “посиделок” может сильно

и фонарик.

мудрые мысли так и проникают в черепную

увеличиваться в зависимости от комфортнос-

 

коробку, стоит только поднатужиться как сле-

ти и оборудованности заведения.

В-четвертых - плакат с призывом: “Програм-

дует. Сортир обладает и неплохим ментально-

 

мист! Помни, что в жизни каждого человека

 

 

ХУМОР

 

 

 

>СПЕЦВЫПУСК #4

0075

117

 

Р, ПРОСТО

Î...

может наступить момент, когда любая бумага

 

 

становится ценной!”.

 

 

И наконец - телефон или несложное перего-

 

 

ворное устройство.

 

 

При желании можно доработать этот “каби-

 

 

нет” радиоприемником (служащим в том чис-

 

 

ле и глушителем-постановщиком помех) и

 

 

таймером, который каждые 20-30 минут напо-

 

 

минает о себе из стульчака электрическим

 

 

разрядом средней силы и стандартным воп-

 

 

И пернуть

 

 

охота,

 

 

И пернуть

 

 

нельзя.

 

 

Услышат

 

 

фашисты,

 

 

Погибнут

 

 

друзья.

 

 

лем “Мы теряем его!”. Акустика среднестатис-

 

 

тического туалета настолько хороша, что под-

 

 

час является серьезной проблемой для поль-

 

 

зователя:

 

 

Не будет лишним и мобильный пурген-инжек-

 

 

тор для лиц с ослабленной силой воли. Если

 

 

позволяет бюджет, будет полезно задуматься

 

 

о комплектовании запасного командного пун-

 

 

кта выделенной линией в Интернет или под-

 

 

ключением к локальной сети.

 

 

Отлично зарекомендовал себя на боевом пос-

 

 

ту аппарат факсимильной связи. Он может

 

 

запросто смягчить ситуацию с отсутствием

 

 

туалетной бумаги. Да, бывает и такое. Что ты

экстремальной ситуации на запасном рабочем

ный ход не требует никаких расходов, а

должен сделать как настоящий товарищ, если

месте.

эффект от него огромен. В обязанности по-

твой друг в беде? Берешь компьютер с факс-

 

добного “дежурного по сортиру” входит нак-

модемом. Hакладываешь в любом графичес-

В любой нормальной компании, фирме, а так-

леивание избранных статей из свежей прессы

ком редакторе на лист надпись “Hовая услуга

же в каждой семье обязательно должен быть

(например, из научно-популяpных журналов)

- рассылка туалетной бумаги факсом” и посы-

назначен человек, ответственный за информа-

на стены. Помимо информационного ликбеза

лаешь своему коллеге, находящемуся в

ционное наполнение сортира, так как подоб-

такая практика позволит постоянно быть в

118

0076

ХУМОР

 

 

 

 

 

>СПЕЦВЫПУСК #4

 

 

1.

Ïpîñyíüòå

ðóêó

“Ммммм, никогда раньше не видел этого цве-

 

 

ïîä

перегородку и

òà”.

 

 

 

 

 

попросите

соседа

 

 

 

 

 

 

одолжить вам

ìàð-

5. Уpоните камень и скажите: “Блин!! Мой

 

 

кер или циркуль.

стеклянный глаз!!”

 

 

 

 

2. Скажите: “Чеpт, я

6. Скажите: “Ой черт, вода холодная”.

 

 

âåäü çíàë,

÷òî íå

 

 

 

 

 

 

стоило

åñòü

ýòî

7. Мычите и громко тужьтесь примерно 30 се-

 

 

дерьмо”.

 

 

 

кунд, затем бросьте в туалет с высоты ма-

 

 

 

 

 

 

 

ленькую дыню и расслабленно вздохните.

 

 

3. Радyйтесь и гром-

Подпрыгните

сантиметров

íà

двадцать.

 

 

ко хлопайте в ладо-

Вздохните с облегчением.

 

 

 

 

ши каждый раз, ког-

 

 

 

 

 

 

да кто-либо нарушит

8. Скажите: “Hy и как это сюда попало?”

 

 

тишину

звуком

åñ-

 

 

 

 

 

 

тественно

отправ-

9. Скажите: “Гyмyс. Hапоминает мне гумус.”

 

 

ляемых

потребнос-

 

 

 

 

 

 

òåé.

 

 

 

 

10. Hаполните большую фляжку гpейпфpyто-

 

 

 

 

 

 

 

вым соком и брызгайте им из-под перегород-

 

 

4. Скажите:

 

 

ки в кабинки соседей с криками: “Эй, малыш!

 

курсе самых разнообразных событий, напри-

 

 

 

 

 

 

 

 

 

мер: “В связи с геополитическими изменения-

 

 

 

 

 

 

 

 

 

ми домен http://poidu.pos.su переименовы-

 

 

 

 

 

 

 

 

 

вается в http://poidu.pos.ru”.

 

 

 

 

 

 

 

 

 

À ÊÀÊ ÆÅ ß?

 

 

 

 

 

 

 

 

 

 

Да, я и забыл. что существуют еще отсталые

 

 

 

 

 

 

 

 

 

граждане, пользующиеся исключительно ма-

 

 

 

 

 

 

 

 

 

лопривлекательными

общественными туале-

 

 

 

 

 

 

 

 

 

тами. Есть рекомендации и для них, но не

 

 

 

 

 

 

 

 

 

нужно ими злоупотреблять :). В любом случае

 

 

 

 

 

 

 

 

 

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

 

 

 

 

 

 

 

 

 

пользой проводят время! Несколько рецептов

 

 

 

 

 

 

 

 

 

напоследок: