Книга: Windows Script Host для Windows 2000/XP

Объект WshRemote

Объект WshRemote

Объект WshRemote необходим для контроля состояния сценариев, которые запущены на удаленной машине. В результате запуска такого сценария на удаленной машине создается процесс, поэтому можно сказать, что экземпляром объекта WshRemote, соответствующего выполняющемуся сценарию, является процесс. Создается WshRemote с помощью метода CreateScript объекта WshController:

var Controller,RemoteScript;
Controller=WScript.CreateObject("WshController");
RemoteScript=Controller.CreateScript("d: WscriptsWMyScript.js", "Server1");

Объект WshRemote имеет два свойства: Error и Status.

В свойстве Error хранится ссылка на объект WshRemoteError, который содержит информацию об ошибке, приведшей к аварийному завершению работы удаленного сценария.

Числовое свойство Status позволяет определить состояние сценария, работающего асинхронно на удаленной машине. Возможные значения свойства Status приведены в табл. 1.19.

Таблица 1.19. Значения параметра Status

Значение Числовое значение Описание
NoTask 0 Объект WshRemote, соответствующий удаленному сценарию, создан, однако сценарий еще не запущен
Running 1 Выполнение удаленного сценария продолжается
Finished 2 Удаленный сценарий завершен

Два имеющихся у объекта WshRemote метода позволяют соответственно запустить удаленный сценарий (метод Execute) или принудительно завершить его выполнение (метод Terminate); оба эти метода не имеют параметров. Метод Terminate, подобно одноименному методу объекта WshScriptExec, пытается закрыть приложение, посылая ему сообщение WM_CLOSE (если это не срабатывает, процесс завершается принудительно).

Кроме свойств и методов, объект WshRemote может генерировать три события, которые описаны в табл. 1.20.

Таблица 1.20. События объекта WshRemote

Событие Описание
Start Возникает при вызове метода Execute и сигнализирует серверу сценариев о начале выполнения сценария на удаленной машине
Error Возникает в том случае, когда выполнение сценария на удаленной машине завершается аварийно
End Возникает при завершении (нормальном или аварийном) работы сценария на удаленной машине

Для обработки в сценариях событий, приведенных в табл. 1.20, необходимо подключиться к объекту WshRemote с помощью метода ConnectObject объекта WScript (листинг 1.28).

Листинг 1.28. Обработка событий объекта 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("Удаленный сценарий запущен");
}
/*************  Конец *********************************************/

Оглавление книги


Генерация: 1.216. Запросов К БД/Cache: 3 / 0
поделиться
Вверх Вниз