Новая версия сайта: The Bat!
Алгоритм автоматического запуска Бата с помощью скрипт-языка WinBatch
...

Для лучшего понимания описания прочтите Автоматизация работы Бата с помощью скрипт-языка WinBatch.

На нашем сайте можно скачать WinBatchBat.zip, в который входят файлы с текстами скриптов, поддерживающих алгоритм:

Программы запуска

Программа Bat Auto Request Pub.wbt запускается из любого пакета, обеспечивающего работу по расписанию. В ней происходит запись в Clipboard параметров командной строки /NOLOGO/CHECKALL и далее идет вызов файла Bat Development Pub.wbt как подпрограммы.

Поскольку скрипт очень короткий, он приводится ниже:

; Данный скрипт вызывается из любой программы запуска Бата по расписанию
; При этом через Clipboard передается параметр запуска командной строки

ClipPut("/NOLOGO /CHECKALL /SENDALL")
; Запуск The Bat с автоматическим предварительным опросом хоста
Call("c:\Program Files\WinBatch\MySamples\Bat Development Pub.wbt","")

Программа Bat Look&Send Pub.wbt запускается при ручном вызове Бата для чтения, обработки почты и написания ответов, например, путем щелчка по иконке на десктопе или на панели инструментов. В ней происходит запись в Clipboard параметра командной строки /NOLOGO и далее идет вызов файла Bat Development Pub.wbt как подпрограммы. Этот скрипт тоже приводится ниже:

; Данный скрипт вызывается для запуска Бата с целью текущего просмотра
; и обработки почты. Через Clipboard передается параметр командной
; строки, гасящий логотип

ClipPut("/NOLOGO")
; Запуск The Bat без предварительного опроса хоста
Call("c:\Program Files\WinBatch\MySamples\Bat Development Pub.wbt","")

Скрипт Bat Development Pub.wbt реализует основной алгоритм обслуживания программы The Bat!. Ядром является цикл типа While, который существует до тех пор, пока открыто окно The Bat!.

Особенности основного алгоритма

Для понимания алгоритма см. файл Bat Development Pub.wbt и приводимую ниже граф-схему алгоритма. Не бойтесь того, что Вам незнаком скрипт-язык. Его директивы достаточно понятну любому мало-мальски знакомому с программированием человеку.

Для работы используется специальный файл индикатор с именем Incoming Mail.txt, находящийся в каталоге почтового ящика. Обновление файла производится одним из правил сортировки Бата, путем экспорта туда последнего полученного сообщения "Автоматизация запуска Бата и WinBatch". Работа файла индикатора основана на идее, что время создания файла не может быть равно значению 00:00:00. Это и является признаком прихода хотя бы одного письма.

В начале программы происходит проверка существования этого файла. При его отсутствии выдается сообщение, и программа завершается. При наличии файла происходит начальная установка его временной метки в значение 00:00:00 (подпрограмма SetIndFile).

Далее опрашивается Clipboard и запускается The Bat!, если к данному моменту его окно еще не было открыто. В качестве параметра командной строки передается значение из Clipboard. Оно определяет один из двух режимов запуска Бата: с начальным автоматическим опросом почтового хоста или с простым открытием Бата и ожиданием действий пользователя.

После этого следует начальное определение используемых переменных. Одна группа переменных связана с обслуживанием окна "Удаленный доступ", которое появляется в процессе дозвона (те из них, где в имени присутствует слово Ring). Они устанавливаются / сбрасываются в подпрограмме CheckRingSession. Ключевыми переменными являются флаг окончания сеанса дозвона RingSession и счетчик числа сеансов дозвона nRing, значение которого сравнивается с пороговым значением MaxRings. Это позволяет прекратить бесконечный цикл дозвонов, порог для которых ранее отсутствовал в Бате (он появился в версиях, старше 1.50).

Другая группа переменных связана с обслуживанием окна "Установка связи с", которое появляется при успешном соединении с почтовым хостом (те из них, где в имени присутствует слово Remote). Они устанавливаются / сбрасываются в подпрограмме CheckRingSession. Ключевыми переменными являются флаг окончания сеанса связи RemoteSession и счетчик числа сеансов удаленной связи nRemote, значение которого используется для автоматического закрытия Бата после окончания одного или двух сеансов. Это устанавливается индивидуально. В данном варианте программы предполагается, что Бат закрывается средствами скрипта:

В качестве порогового значения для сеансов установления связей с хостом, после которых происходит закрытие бата, используется переменная MaxRemoteSessions.

После завершения подготовки переменных начинается основной рабочий цикл ожидания While, признаком для которого является существование окна "The Bat!". Пока существует это окно в цикле происходит выполнение следующих действий:

При любом способе закрытия Бата цикл While завершается, и завершается весь скрипт. Перед концом проверяется, закрылось ли окно установления связи, и если нет (по каким-то причинам), то оно закрывается, чтобы освободить телефонную линию.

Подпрограммы

В данном алгоритме используются 4 подпрограммы:

Заключение

Целью данного описания была иллюстрация идеи и привлечение внимания к скрипт-языку создания пакетных файлов WinBatch. Возможно, в приведенных текстах программ имеются несоответствия в названиях служебных окон Бата. Это легко корректируется. В ближайшем будущем я надеюсь поместить на сайте готовое откомпилированное решение, которое может использоваться поклонниками Бата, не знакомыми с программированием.

Николай Корнев

Новые версии The bat! | Купить The bat! | О проекте | Скачать The Bat!