объекта, а затем соединиться с ним при помощи метода ConnectObject, указав нужный префикс для функций-обработчиков:

Controller = WScript.CreateObject('WshController');

RemScript = Controller.CreateScript('D:\RemoteScript.js ', 'stand');

WScript.ConnectObject(RemScript, 'RemoteScript_');

Затем в тексте сценария описываются функции RemoteScript_Start, RemoteScript_Error и RemoteScript_End, управление в которые будет передаваться при наступлении соответствующих событий.

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

/**********************************************************************/

/* Имя: RemoteEvents.js                                               */

/* Язык: JScript                                                      */

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

/*           сценария                                                 */

/**********************************************************************/

var Controller,RemScript,IsQuit;  //Объявляем переменные

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

Controller = WScript.CreateObject('WshController');

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

RemScript = Controller.CreateScript('D:\RemoteScript.js ', 'stand');

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

WScript.ConnectObject(RemScript, 'RemoteScript_');

RemScript.Execute();  //Запускаем удаленный сценарий

IsQuit = false;

while (!IsQuit) WScript.Sleep(100);  //Приостанавливаем сценарий на 0,1 сек

WScript.Quit();  //Выходим из сценария

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

function RemoteScript_End() { //Событие End

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

 IsQuit = true;

}

function RemoteScript_Error() { //Событие Error

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

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

  RemScript.Error.Description);

 IsQuit = true;

}

function RemoteScript_Start() { //Событие Start

 WScript.Echo('Удаленный сценарий запущен');

}

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

Листинг 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:

Добавить отзыв
ВСЕ ОТЗЫВЫ О КНИГЕ В ИЗБРАННОЕ

0

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

Отметить Добавить цитату