Set Controller = WScript.CreateObject("WshController")

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

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

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

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

While RemScript.Status <> 2

 ' Цикл выполняется до завершения удаленного сценария

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

Wend

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

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

Контролировать ход выполнения удаленных сценариев можно не только путем анализа свойства Status, но и с помощью обработки событий Start (запуск сценария), Error (ошибка при выполнении сценария) и End (завершение работы сценария) объекта WshRemote; соответствующие примеры сценариев на языках JScript и VBScript приведены в листингах 2.55 и 2.56.

Напомним, что для обработки событий объекта нужно в сценарии сначала создать экземпляр этого объекта, а затем соединиться с ним при помощи метода 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;

}

Перейти на страницу:

Похожие книги