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("Удаленный сценарий запущен");
}
/************* Конец *********************************************/
Объект WshRemoteError
создается автоматически при возникновении ошибки во время выполнения сценария на удаленной машине и содержит информацию об этой ошибке. Ссылка на объект WshRemoteError
хранится в свойстве Error
соответствующего объекта WshRemote
.
Свойства объекта WshRemoteError
описаны в табл. 1.21 (методов у этого объекта нет).
Таблица 1.21.Свойства объекта WshRemoteError
Свойство |
Описание |
Description |
Содержит краткое описание ошибки, которая привела к аварийному завершению работы сценария. Если для какой-либо ошибки описание не предусмотрено, Description содержит пустую строку |
Line |
Определяет номер строки в файле сценария, в которой произошла ошибка. Если для ошибки нельзя определить номер строки, в которой она произошла, в свойство Line записывается 0 |
Character |
Определяет номер символа в строке, в котором произошла ошибка. Если для ошибки нельзя определить точную позицию, в которой она возникла, в свойство Character записывается 0 |
Number |
Содержит числовой код ошибки |
SourceText |
Содержит в текстовом виде строку сценария, в которой возникла ошибка. Так как не всегда возможно точно определить строку, в которой произошла ошибка, то иногда значением свойства SourceText может быть пустая строка |
Source |
Содержит в символьном виде название СОМ-объекта, обращение к которому послужило источником ошибок |
Для получения информации о возникшей при выполнении удаленного сценария ошибке можно использовать обработчик события Error
объекта WshRemote
; соответствующие примеры приведены в листингах 1.28, 2.56 и 2.57.
Читать дальше