Книга: 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("Удаленный сценарий запущен");
}
/************* Конец *********************************************/
- Объект WshController
- Объект WshRemoteError
- 1.1. Введение в объектно-ориентированное программирование
- ЧАСТЬ IV. База данных и ее объекты.
- 1.1.1. Что такое объект
- Практическая работа 53. Запуск Access. Работа с объектами базы данных
- Физические объекты
- Иерархия объектов в InterBase
- Имена объектов длиной 68 символов
- Создание объектов Collection
- 7.12. Объективизация времени
- 3.3. Определение объектов защиты