Скрипты NetView :: Terminal


  • Функции приема\посылки данных удаленному хосту. Используется не блокирующая модель работы, это значит что скрипт имеет цикл обработки событий, ожидая их с помощью функции WaitEvent. Операции отправки данных работают асинхронно. Операции чтения данных из соединения могут возвращать пустую строку, не ожидая прихода новых данных.

 

 


procedure Disconnect;

Выполняет разрыв установленного TCP соединения не прерывая выполнения скрипта. Но при следующем обращению к функциям передачи данных по TCP соединению выполнение скрипта прервется. Выполнение скрипта так же автоматически завершается если удаленная сторона закрывает соединение во время операции передачи данных.

function Recvch: string;

Возвращает строку длиной 1 символ принятую с удаленного хоста. Если данных в очереди нет возвращается пустая строка без ожидания поступления данных. Если соединение было по каким либо причинам разорвано выполнение скрипта завершается.

function Recv: String;

Возвращает все данные принятые с удаленного хоста в виде строки. Если данных в очереди нет возвращается пустая строка без ожидания поступления данных. Если соединение было по каким либо причинам разорвано выполнение скрипта завершается.

function Recvln: String;

Возвращает строку до символов #13 #10 из очереди чтения, если таких символов нет то возвращается пустая строка. Если соединение было по каким либо причинам разорвано выполнение скрипта завершается.

procedure Send(s: string);

Отсылает строку s удаленному хосту. Если соединение было по каким либо причинам разорвано выполнение скрипта завершается.

procedure SetEcho(EchoOn:integer);

Если EchoOn = 1 то включает эхо операций приема данных - при любые данные принимаемые будут автоматически отсылатся на хост, полезно для эмуляции различных серверов терминалов. Если EchoOn = 0 то эхо отключается.


function GetBroadcast:string;

Возвращает строку, установленную при последнем вызове SendBroadcast из любого скрипта в пределах этого терминала, работающего в серверном режиме, позволяет скриптам, работающим в различных потоках обмениваться данными. 

function GetInputText(var s1,s2: string): integer;

В s1, s2 возвращается текст из нижних полей ввода терминала. Сама функция возвращает битовую маску в которой установлен бит 0 если включена галка CRLF и бит 1 если включена галка Log.

procedure Gotoxy(x,y,rlt: integer);

Если rlt=0 то устанавливает курсор в абсолютную позицию x,y. Если rlt=1 то переводит курсор на x,y позиций относительно текущей позиции.

procedure ClearLine;

Очищат линию от позиции курсора до конца строки не меняя позиции курсора.

procedure Clrscr;

Очищает экран, устанавливает курсор в левый верхний угол (0;0)

function Readln(question: string): string;

Выводит диалоговое окно с текстом question и полем ввода текста. Возвращает введенный текст.

procedure SendBroadcast(s:string);

Устанавливает строку s, которую затем сможет получить любой скрипт вызовом GetBroadcast. Рассылает всем скриптам кроме текущего событие #7.

procedure SetInputText(i:integer; s: string);

Устанавлиает в поле ввода указанный текст. Если i=0 То устанавливается текст в 1м поле, если i=1 то устанавливается текст во 2м поле.

procedure SetBackColor(i:integer);

Устанваливает общий цвет фона окна терминала.

procedure SetFontName(s: string);

Позволяет сменить шрифт используемый в терминале. По умолчанию используется Lucida Console. 

procedure SetLineLength(i: integer);

Устанавливает количество символов в строке виртуального экрана терминала. 

procedure SetOemCP(i: integer);

Если i=1 то включается OEM'овская кодировка (DOS'овская), иначе используется таблица ANSI.

procedure SetStatus(s: string);

Устанавливает текст в строке статуса внизу.

procedure TextFont(i: integer);

i представляет собой битовую маску. Учтите что не со всеми шрифтами это работает.

Бит 0 - устанавливается жирный шрифт

Бит 1 - устанавливается наклонный шрифт

Бит 2 - устанавливается подчеркивание

Бит 3 - устанавливается перечеркивание.

procedure TextBackground(i: integer);

Устанавливает текущий RGB цвет фона текста в i.

procedure TextColor(i: integer);

Устанавливает текущий RGB цвет текста в i.

function WhereX: integer;

Возвращает текущую позицию курсора по горизонтали

function WhereY: integer;

Возвращает текущую позицию курсора по вертикали

procedure Write(s: string);

Выводит текст в текущую позицию курсора

procedure Writeln(s: string);

Выводит текст в текущую позицию курсора. Дополнительно переводит позицию на начало новой строки.


function GetScriptMode:integer;

Возвращает число 2 для скрипта работающего в терминале.

procedure SetTimer(i:integer);

Включает таймер, который шлет скрипту через каждые i мсек событие №8. Если i=0 то таймер отключается.

procedure SyncScript(I: Longint);

Используйте эту функцию для синхронизации с другими скриптами. Если I=1 - скрипт входит в критическую секцию, если 0 -выходит. Все действия в критической секции должны занимать минимальное время

function WaitEvent(var v1,v2: integer): integer;

Основная функция цикла обработки событий. Ожидает событие, возвращает его код и 2 опциональных параметра.

Событие Когда происходит, что делать Параметр v1 Параметр v2
0 Соединение было разорвано - -
1 С удаленного хоста чтото пришло. Новые данные можно получить вызовом Recv, Recvln, Recvch - -
4 Юзер нажал или отпустил клавишу когда фокус ввода находится в окне текста. Если установлен бит 7 то клавиша была отпущениа, иначе нажата Виртуальный код клавиши
5 Юзер ввел символ когда фокус ввода находится в окне текста. - Код символа
6 Юзер нажал Enter в одном из полей ввода внизу. См GetInputText, SetInputText -

0 если ентер был нажат в первом поле

1 если ентер был нажат во втором поле

7 Какой то скрипт вызвал SendBroadcast. Можно получить эту строчку вызовом GetBroadcast - -
8 Событие таймера. См SetTimer - -

function NV_CNAME: string;

Возвращает имя своего компьютера.

function NV_REMOTEIP: string;

Возвращает IP адрес удаленного клиента.

function NV_PORT: integer;

Возвращает порт на который подключен клиент. (Поле Port)

function NV_ADDRESS: integer;

Возвращает IP адрес удаленного клиента в сетевом порядке байтов.

 


© 2001-2004 Killer{R}   © 2003 VoVaN