Автоматизация рутинных задач. Скрипты.


2016.May
Tagged: script scripting

Пишем скрипты сами

Сценарии в программах и жизни.

Скриптовые или сценарные языки программирования привлекают возможностью относительно быстрого освоения и скорого написания работающих приложений, даже в самом начале изучения скриптового языка. 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, который надо скопировать в системную папку Windows\System32, если у вас установлена Windows XP. В программе присутствует довольно подробный файл справки - O'Basic Help Reference. За справочной информацией по языку нужно обращаться к нему, но по мере написания простых и полезных программ, необходимые комментарии я буду приводить. Самостоятельно писать небольшие скрипты лучше начав с первого занятия.

Учимся быстро писать небольшие программы на O'Basic Script Language.

Занятие первое. Напишем небольшую программу, которая запоминает некоторую информацию о компьютере на котором была запущена, запоминает системную дату, изменяет системную дату, потом программа запускает выполнение другой программы, после чего возвращает правильную дату. Затем расширим возможности нашего скрипта возможностью чтения и записи в реестр Windows. Далее научимся вносить изменения в бинарные, исполняемые файлы. Запустим O'Basic и удалим имеющуюся одну строку в секции кода. Вначале объявим и инициализируем переменные, которые нам понадобятся в нашей программе. Строковые переменные на конце содержат знак $, числовые и времени знак #. Назовём переменную в которой будет путь к системной папке Windows WinDir$ и сразу её инициализируем. WinDir$=GetWinDir() Таким же образом назначим переменную для хранения правильного системного времени и получим его. CurTime# = Clock.SystemTime# Иногда, например для написания простейших защит программ, может понадобиться серийный номер, установленного в компьютере жёского диска, получим и сохраним его. SerNum# = GetDiskSerialNumber("C:\") Теперь перейдем на вкладку Form и изменим имя формы например на frmStart. В верхнем меню Resources, добавим текстовое поле, выбрав Static и оставим имя по умолчанию - Static1. Добавим поля Static2 и Static3. Текст во вкладке Code у нас должен быть следующий:
WinDir$=GetWinDir()
CurTime# = Clock.SystemTime#
Msg$ = Clock.Format(CurTime#, "Системные время и дата:
$D, $M #d, #Y, at #h:#n:#s $P") Msg2$= "Серийный номер системного жесткого диска:" SerNum# = GetDiskSerialNumber("C:\") frmStart.Title$ = "Скрипт на O'Basic" frmStart.Static2.Text$ =Msg2$ frmStart.Static1.Text$ = Str(SerNum#) frmStart.Static3.Text$ = Msg$ ReturnedBy$ = frmStart.Show(fsModal@)
Нажав F5 - запустим нашу программу на выполнение, увидим что наша программа показала серийный номер HDD и системное время. Далее изменим системное время на нужное нам время, вставим задержку, обновим окно и сообщим об этом.
WinDir$=GetWinDir()
CurTime# = Clock.SystemTime#
Msg$ = Clock.Format(CurTime#, "Системные время и дата:
$D, $M #d, #Y, at #h:#n:#s $P") Msg2$= "Серийный номер системного жесткого диска:" SerNum# = GetDiskSerialNumber("C:\") frmStart.Title$ = "Скрипт на O'Basic" frmStart.Static2.Text$ =Msg2$ frmStart.Static1.Text$ = Str(SerNum#) frmStart.Static3.Text$ = Msg$ ReturnedBy$ = frmStart.Show(fsNonModal@) Sleep 2 Dat# = Clock.Date(2012,4,21) Clock.SystemTime# = Dat# Msg$ = Clock.Format(Dat#, "Системные время и дата:
$D, $M #d, #Y, at #h:#n:#s $P") frmStart.Title$ = "Скрипт на O'Basic" frmStart.Static2.Text$ =Msg2$ frmStart.Static1.Text$ = Str(SerNum#) frmStart.Static3.Text$ = Msg$ frmStart.Refresh MsgBox("Мы изменили системное время") Sleep 1 'Запустим, какое-нибудь приложение, 'например, блокнот и вернём время. WinExec "c:\WINDOWS\NOTEPAD.EXE", 0 Sleep 1 Clock.SystemTime# = CurTime# Msg$ = Clock.Format(CurTime#, "Системные время и дата:
$D, $M #d, #Y, at #h:#n:#s $P") frmStart.Title$ = "Скрипт на O'Basic" frmStart.Static2.Text$ =Msg2$ frmStart.Static1.Text$ = Str(SerNum#) frmStart.Static3.Text$ = Msg$ MsgBox("Теперь вернули") frmStart.Refresh Sleep 1 Exit
Скачать код приложения и скомпилированный *exe файл можно здесь. В следующих сообщениях продолжим написание скрипта на O'Basic и добавим в нашу программу шифрование и обратную расшифровку текста, работу с реестром и памятью.

Яндекс.Метрика