Чтение онлайн

на главную - закладки

Жанры

Windows Script Host для Windows 2000/XP

Попов Андрей Викторович

Шрифт:

Создается объект WshController следующим образом:

var WshController=WScript.CreateObject("WshController");

Замечание

Обратите внимание, что для объекта

WshController
программным идентификатором (ProgID) является именно строка "
WshController
", а не строка "
WScript.WshController
", как указано в бета-версии документации на WSH 5.6.

Метод

CreateScript
возвращает указатель на объект
WshRemote
, с помощью которого можно контролировать состояние удаленного сценария и управлять его выполнением.
При выполнении этого метода WSH последовательно производит следующие действия:

подготавливает файл со сценарием для пересылки на удаленную станцию;

с помощью протокола DCOM создает экземпляр объекта

WshRemote
на удаленной машине;

пересылает сценарий на удаленную станцию для последующего выполнения с помощью метода

Execute
объекта
WshRemote
.

Синтаксис метода

CreateScript
:

CreateScript(CommandLine, [MachineName])

Параметр

CommandLine
содержит командную строку для запуска сценария, который должен быть выполнен на удаленной станции. Путь к сценарию должен быть указан относительно локальной машины, а не относительно той станции, на которой должен выполняться сценарий. Чаще всего этот путь указывает на файл, находящийся непосредственно на локальном компьютере, хотя можно указать путь к сценарию, записанному на каком-либо общем сетевом ресурсе (это делает возможным, работая на одном компьютере, загружать сценарий с другого и выполнять этот сценарий на третьем компьютере в сети).

Второй необязательный параметр

MachineName
задает имя компьютера, на котором должен быть запущен сценарий. Если этот параметр не указан, то сценарий будет выполняться на локальной машине.

Объект 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; //Выходим из сценария

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

Поделиться:
Популярные книги

Дракон - не подарок

Суббота Светлана
2. Королевская академия Драко
Фантастика:
фэнтези
6.74
рейтинг книги
Дракон - не подарок

Бастард Императора. Том 8

Орлов Андрей Юрьевич
8. Бастард Императора
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Бастард Императора. Том 8

Чужая дочь

Зика Натаэль
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Чужая дочь

Эра Мангуста. Том 2

Третьяков Андрей
2. Рос: Мангуст
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Эра Мангуста. Том 2

Идеальный мир для Лекаря 14

Сапфир Олег
14. Лекарь
Фантастика:
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Идеальный мир для Лекаря 14

Один на миллион. Трилогия

Земляной Андрей Борисович
Один на миллион
Фантастика:
боевая фантастика
8.95
рейтинг книги
Один на миллион. Трилогия

Помещицы из будущего

Порохня Анна
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Помещицы из будущего

Шлейф сандала

Лерн Анна
Фантастика:
фэнтези
6.00
рейтинг книги
Шлейф сандала

Черный маг императора 2

Герда Александр
2. Черный маг императора
Фантастика:
юмористическая фантастика
попаданцы
аниме
6.00
рейтинг книги
Черный маг императора 2

Император

Рави Ивар
7. Прометей
Фантастика:
фэнтези
7.11
рейтинг книги
Император

Бандит 2

Щепетнов Евгений Владимирович
2. Петр Синельников
Фантастика:
боевая фантастика
5.73
рейтинг книги
Бандит 2

На границе империй. Том 9. Часть 2

INDIGO
15. Фортуна дама переменчивая
Фантастика:
космическая фантастика
попаданцы
5.00
рейтинг книги
На границе империй. Том 9. Часть 2

Князь Серединного мира

Земляной Андрей Борисович
4. Страж
Фантастика:
фэнтези
попаданцы
5.00
рейтинг книги
Князь Серединного мира

Чайлдфри

Тоцка Тала
Любовные романы:
современные любовные романы
6.51
рейтинг книги
Чайлдфри