Выбрать главу

/*************  Конец *********************************************/

Листинг 2.56. Обработка событий объекта WshRemote (VBScript)

'********************************************************************

' Имя: RemoteEvents.vbs

' Язык: VBScript

' Описание: Обработка событий, возникающих при выполнении удаленного

'           сценария

'********************************************************************

Option Explicit

Dim Controller,RemScript,IsQuit  ' Объявляем переменные

' Создаем объект WshController

Set Controller = CreateObject("WshController")

' Создаем сценарий на удаленной машине (объект WshRemote)

Set RemScript = Controller.CreateScript("D:\RemoteScript.js ", "stand")

' Устанавливаем соединение с объектом WshRemote

WScript.ConnectObject RemScript, "RemoteScript_"

RemScript.Execute  ' Запускаем удаленный сценарий

IsQuit = False

While Not IsQuit

 WScript.Sleep 100  ' Приостанавливаем сценарий на 0,1 сек

Wend

WScript.Quit ' Выходим из сценария

'***************  Функции-обработчики событий  ***********************

Function RemoteScript_End()  ' Событие End

 WScript.Echo "Выполнение удаленного сценария завершено"

 IsQuit = True

End Function

Function RemoteScript_Error()  ' Событие Error

 ' Выводим на экран описание возникшей ошибки

 WScript.Echo "Ошибка при выполнении удаленного сценария: " & _

  RemScript.Error.Description

 IsQuit = True

End Function

Function RemoteScript_Start()  ' Событие Start

 WScript.Echo "Удаленный сценарий запущен"

End Function

'*************  Конец ********************************************* 

Замечание

При контроле за ходом выполнения удаленного сценария с помощью обработки событий объекта WshRemote затрачивается больше ресурсов компьютера по сравнению с простой проверкой свойства Status. Кроме этого, при обработке событий увеличивается сетевой трафик между локальной и удаленной машинами. 

Глава 3

Сценарии WSH как приложения XML

До сих пор мы рассматривали простые одиночные файлы сценариев, в которых мог использоваться язык JScript или VBScript. В версии WSH 1.0 это был единственный поддерживаемый тип сценариев, причем используемый язык определялся по расширению файла: js для JScript и vbs для VBScript. Начиная с WSH 2.0 появилась возможность создавать сценарии, в которых можно применять оба языка одновременно. Для таких сценариев в операционной системе регистрируется расширение wsf; wsf-файлы мы будем далее называть просто WS-файлами. Новый тип сценариев (WS-файл) имеет еще несколько важных преимуществ перед одиночными файлами сценариев WSH 1.0:

□ поддерживаются вложенные файлы;

□ возможен доступ из сценария к внешним мнемоническим константам, которые определены в библиотеках типов используемых объектов ActiveX;

□ в одном WS-файле можно хранить несколько отдельных, независимых друг от друга, сценариев;

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

Понятно, что для обеспечения новых возможностей необходимо иметь больше информации, чем ее может предоставить отдельный сценарий. В самом файле сценария должна присутствовать некоторая дополнительная информация, скажем, имя этого сценария (подобная информация содержится, например, в заголовках HTML-страниц). Другими словами, для сценариев WSH должен использоваться уже некий специальный формат, а не просто отдельные js- или vbs-файлы. В качестве такого формата разработчики Microsoft выбрали язык XML — Extensible Markup Language, который уже использовался ими для определения информационной модели в технологии WSC — Windows Script Components, которая позволяет с помощью языков сценариев создавать и регистрировать полноценные СОМ-объекты.

Таким образом, теперь сценарии WSH не просто содержат в текстовом виде ActiveX-совместимый сценарий, а являются XML-приложениями, поддерживающими схему WS XML — Windows Script XML, которая, в свою очередь, опирается на схему WSC XML. Поэтому для понимания двух технологий (WSC и WSH) достаточно освоить одну схему XML.

WS-файл рассматривается сервером сценариев как файл с разметкой XML, который должен соответствовать схеме WS XML. Новый тип файла и формат XML обеспечивают более мощную среду для написания сценариев.

Для того чтобы использовать язык XML в сценариях WSH, вовсе не обязательно вникать во все тонкости этого языка, однако основные принципы XML понимать, конечно, нужно.

Основные принципы XML

Проявляемый в настоящее время большой интерес к языку XML объясняется тем, что он предоставляет возможности, позволяющие в текстовой форме описывать структурированные данные. Точнее говоря, XML является метаязыком для создания различных языков разметки, которые способны определять произвольные структуры данных — двоичные данные, записи в базе данных или сценарии. Прежде всего, XML используется в Internet- приложениях при работе браузеров, которые отображают информацию, находящуюся на Web-серверах. При этом пользователю отдельно передаются данные в виде XML-документа, и отдельно — правила интерпретации этих данных для отображения с помощью, например, языков сценариев JScript или VBScript.