Скриптовые или сценарные языки программирования привлекают возможностью относительно быстрого освоения и скорого написания работающих приложений, даже в самом начале изучения скриптового языка. O’Basic простой и нетребовательный к ресурсам компьютера язык, разработанный в 1995 — 1999 годах фирмой Seltech Software, для начинающего пользователя он хорош тем, что можно сразу использовать готовые элементы windows — диалоги, формы, работать с окнами и сообщениями, файлами и библиотеками. Автоматизировать многие действия во время работы за компьютером, работать с сокетами, работать с реестром, вызывать диалоги с пользователем и многое, многое другое могут делать программы, написанные на O’Basic.


O'Basic


Скачать O’Basic Version 97.034 можно отсюда, и там же есть официальный O’Basic Freedom Patch написанный Sean O’Dell из Celtech Software, снимающий все ограничения и позволяющий компилировать ваши скрипты в исполняемые .exe файлы. Патч содержит файлы OBMake.exe и OB97DE.exe, которыми нужно заменить одноимённые файлы в папке с установленным O’Basic, и файл OBEngine.dll, который надо скопировать в системную папку WindowsSystem32, если у вас установлена Windows XP. В программе присутствует довольно подробный файл справки — O’Basic Help Reference. За справочной информацией по языку нужно обращаться к нему, но по мере написания простых и полезных программ, необходимые комментарии я буду приводить. Самостоятельно писать небольшие скрипты лучше начав с первого занятия.

Продолжаем. O’basic имеет встроенные средства работы с собственным форматом архивирования ark. Это очень удобно для написания небольших, собственных приложений и сценариев резервного копирования файлов и папок. Для работы с архивами справка даёт такое объявление объекта:

Создадим и упакуем в архив «C:Backup.ark» все файлы и поддиректории в папке «C:temp» :

А теперь извлечем в каталог, откуда запускаем наш скрипт, заменив строку Arc.AddFiles на : Arc.ExtractAllFiles Как удобно и просто работать с архивом в O’basic, к тому-же формат архива не очевиден и тот-же винрар его просто не открывает, а этим уже можно пользоваться при необходимости.

O’basic. Учим скрипт открывать URL и добавляем изображение на форму. Продолжение предыдущего занятия, начало занятий здесь. Добавим скрипту — патчеру форму с нашей картинкой и научим его открывать нужный нам URL в браузере IE. Для этого откроем редактор форм, добавим и подпишем кнопки как на изображении, приведённом ниже.

Чтобы вставить свою картинку — в меню Resources выберите Graphic и загрузите изображение с вашего компьютера. Для того чтобы по нажатию на кнопку открывался нужный URL, добавьте следующий кусок кода, где адрес URL можете заменить на нужный вам.

Весь код скрипта. *************************************************

************************************************** Скачать код и уже скомпилированное приложение примера можно здесь.

Занятие третье. Продолжим работу с нашим приложением. В предыдущем сообщении мы добавили в скрипт возможности работы с реестром и простое шифрование. Сегодня добавим обработку исключений и чтение — запись в буфер обмена текстовой информации. Но сначала научимся обрабатывать ошибки возникающие при выполнении программы — исключения. В O’Basic исключения обрабатываются в блоке Try — Catch.

В программе из прошлого сообщения при повторном нажатии на кнопку «Удалить из реестра», приложение закрывалось с ошибкой, так как запись из реестра уже была удалена или этой записи там не было, и удалять было нечего.

Исправим это дело поместив обработку кнопки в блок Try — Catch.

После этого добавим приложению возможность работы с буфером обмена — clipboard. Поместим на форму ещё две кнопки Button6 и Button7, добавим им надписи: txtBtn6$= «Записать в clipboard» txtBtn7$= «Прочитать clipboard» и обработку нажатий: If ReturnedBy$ = «Button6» Then GoSub Clipb_set If ReturnedBy$ = «Button7» Then GoSub Clipb_get.

Текст заносится в буфер обмена в O’Basic, очень просто Clipboard.Text$ = «Текст в clipboard», извлекается тоже $ = Clipboard.Text$. Мы в нашем примере, просто выведем содержимое буфера в сообщении: MsgBox(Clipboard.Text$). Вот, что должно у нас в результате получиться:

**********************************************

***********************************************************

script

По этой ссылке можно скачать код нашего приложения на O’Basic, а по этой выполняемый *exe файл. В следующих сообщениях добавим приложению возможность работы с файлами и каталогами.

Продолжение, начало смотреть здесь. Добавим в скрипт работу с реестром и шифрование, для этого увеличим нашу форму и добавим на неё пять объектов Button, c именами соответсвенно Button1, Button2, ..Button5. Кнопкам в коде присвоим свойства поля Text — дадим им названия. Добавим метки для переходов внутри программы — Reg:, DelReg:, и ExitApp:. Объект Registry в O’Basic позволяет получать доступ к записи и чтению в реестр Windows. Параметр Key$ задаёт возможные ветви реестра:

Для шифрования и расшифровки текста в O’Basic используются следующие выражения: $ = Encode(Password$, Value$) $ = Decode(Password$, Value$) Шифровка строки Value$ производится с помощью пароля Password$. Этот же пароль необходим и для расшифровки. CelTech утверждает что стойкость алгоритма не гарантируется, но достаточна для неважных целей. Вот что у нас должно в итоге получиться: ********************************************************

erprog

************************************************************** Нажав Ctrl + F5 — скомпилируем наше приложение — получим исполняемый (*.exe) файл. Здесь же можно задать иконку нашей программе. Другие возможности будем добавлять в программу, в следующих сообщениях.

Занятие первое. Напишем небольшую программу, которая запоминает некоторую информацию о компьютере на котором была запущена, запоминает системную дату, изменяет системную дату, потом программа запускает выполнение другой программы, после чего возвращает правильную дату. Затем расширим возможности нашего скрипта возможностью чтения и записи в реестр Windows. Далее научимся вносить изменения в бинарные, исполняемые файлы. Запустим O’Basic и удалим имеющуюся одну строку в секции кода. Вначале объявим и инициализируем переменные, которые нам понадобятся в нашей программе. Строковые переменные на конце содержат знак $, числовые и времени знак #. Назовём переменную в которой будет путь к системной папке Windows WinDir$ и сразу её инициализируем. WinDir$=GetWinDir() Таким же образом назначим переменную для хранения правильного системного времени и получим его. CurTime# = Clock.SystemTime# Иногда, например для написания простейших защит программ, может понадобиться серийный номер, установленного в компьютере жёского диска, получим и сохраним его. SerNum# = GetDiskSerialNumber(«C:») Теперь перейдем на вкладку Form и изменим имя формы например на frmStart.

frmStart

 

 

В верхнем меню Resources, добавим текстовое поле, выбрав Static и оставим имя по умолчанию — Static1. Добавим поля Static2 и Static3. Текст во вкладке Code у нас должен быть следующий:

 

Нажав F5 — запустим нашу программу на выполнение, увидим что наша программа показала серийный номер HDD и системное время. Далее изменим системное время на нужное нам время, вставим задержку, обновим окно и сообщим об этом.

 

erprog

Скачать код приложения и скомпилированный *exe файл можно здесь. В следующих сообщениях продолжим написание скрипта на O’Basic и добавим в нашу программу шифрование и обратную расшифровку текста, работу с реестром и памятью.