Home

Page 29
Page 29
background image

 Глава 1

Чтобы вызвать эту процедуру, нужно написать следующий код в любом мес-
те программы (желательно в начале):

asm

push

push 0

call

end;

В Delphi есть встроенный ассемблер, вы можете прямо среди кода на Пас-
кале писать код на ассемблере. В примере, показанном выше, использован

ассемблер для вызова процедуры RegisterServiceProcess. Инструкции

языка ассемблера нужно заключать между словами asm и and;. В примере

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

мощью операции push. Во второй строке в стек поднимается значение о.

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

RegisterServiceProcess.

 же самое можно было бы сделать и с

вызова функции Паскаля RegisterServiceProcess (О, 1), но мне захотелось

показать вам, как работает встроенный ассемблер. Да и тогда пришлось бы
изменить описание

 RegisterServiceProcess, которая регистри-

рует программу как процесс и в Windows 9x делает программу невидимой

в списке запущенных программ, который вы вызываете нажатием

<Ctrl>+<Alt>+<Del>. В последней инструкции ассемблера вызывается про-

цедура RegisterServiceProcess С ПОМОЩЬЮ оператора call.

 наша программа не будет видна и в Windows 9x Только вы долж-

ны учитывать, что этот код прекрасно работает в Windows 9x, но выдаст

ошибку в Windows 2000/XP, потому что в его ядре нет функции

RegisterServiceProcess. Поэтому вы должны знать, в какой системе будет

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

1.3. Шаблон минимального приложения

Сейчас нам пора написать хороший шаблон минимального приложения,

который мы будем использовать в этой книге для написания наших про-
грамм-приколов. Для этого надо познакомиться с внутренностями

Windows и его WinAPI.

Запустите уже полюбившийся Delphi. Как всегда, сразу откроется новый
проект. Так как мы очень часто будем делать минимальные программы, то
нам абсолютно не нужны никакие формы, и их надо удалить. Щелкните

 Manager. Появится окно менеджера проектов. Выделите

 и

нажмите кнопку Remove для удаления лишней формы (рис. 1.9).


Copyright © 2020 Файлообменник files.d-lan.dp.ua

Использование любых материалов сайта возможно только с разрешения автора.