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

Некоторые функции всегда требуют фиксированное число аргументов (до 60). Другие функции имеют несколько обязательных аргументов, а остальные могут отсутствовать.

После того, как основы VBA стали понятны, идем дальше. Итак, вирусы и «троянцы» на VBA.

Язык VBA универсален, и тому есть две причины. Во-первых, этот язык прост в изучении и использовании, поскольку он является языком визуального программирования, он ориентирован на события, а не на объекты. С его помощью без особых затрат времени очень легко создавать сложные модули. Во вторых, можно использовать большое количество предопределенных функций, облегчающих работу. В третьих, имеются функции (или макросы) автоматического выполнения, что позволяет упростить написание процедур автокопирования, занесения в память и прочих используемых стандартными DOS-вирусами.

Помимо этого, преимуществом VBA является свойство переносимости. VBA работает под Win 3.x, Win95, WinNT, MacOS и так далее, то есть в любой операционной системе, где можно запустить приложения его поддерживающие.

VBA представляет собой язык, адаптированный к языку приложения, из-под которого он запущен. Это означает, что если на компьютере установлена, например, испанская версия WinWord, то имена предопределенных функций будут также на испанском. Так что два следующих макроса – вовсе не одно и то же.

Первый макрос (испанский):

Sub Demo_Macro

Con Seleccion.Fuente

.Nombre=”Arial”

Fin Con

End Sub

Второй макрос (английский):

Sub Demo_Macro

With Selection.Font

.Name=”Arial”

End With

End Sub

Последний макрос не будет работать в испанской версии WinWord (а первый – в английской) – он вызовет ошибку выполнения макроса. Еще отметим, что VBA – язык интерпретируемого (некомпилируемого) типа, так что каждая ошибка выполнения проявляется «в полете».

Существуют функции, единые для всех версий VBA, вне зависимости от языка. Например, автоматический макрос AutoExec.

Всего таких специальных макросов пять, выполняются они автоматически:

AutoExec: это макрос, активируемый при загрузке текстового процессора, но только в том случае, если он сохранен в шаблоне Normal.dot или в каталоге стандартных приложений;

AutoNew: активизируется при создании нового документа;

AutoOpen: активизируется при открытии существующего документа;

AutoClose: активизируется при закрытии документа;

AutoExit: активизируется при выходе из текстового процессора.

В качестве доказательства силы и универсальности этих макросов рассмотрим следующий фрагмент кода (о языке уже договорились).

Перейти на страницу:
Нет соединения с сервером, попробуйте зайти чуть позже