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

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

Жанры

Windows Script Host для Windows 2000/XP

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

Шрифт:

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

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

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

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

while (RemScript.Status != 2)

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

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

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

/************* Конец *********************************************/

В листинге 2.54 приведен аналог сценария RunRemoteScript.js на языке VBScript.

Листинг 2.54. Запуск удаленного сценария (VBScript)

'********************************************************************

' Имя: RunRemoteScript.vbs

' Язык: VBScript

' Описание: Запуск удаленного сценария

'********************************************************************

Option Explicit

Dim Controller, RemScript ' Объявляем переменные

' Создаем объект WshController

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;

}

function RemoteScript_Start { //Событие Start

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

}

/************* Конец *********************************************/

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

Буря империи

Сай Ярослав
6. Медорфенов
Фантастика:
аниме
фэнтези
фантастика: прочее
эпическая фантастика
5.00
рейтинг книги
Буря империи

Трактир «Разбитые надежды»

Свержин Владимир Игоревич
1. Трактир "Разбитые надежды"
Фантастика:
боевая фантастика
7.69
рейтинг книги
Трактир «Разбитые надежды»

Кай из рода красных драконов 2

Бэд Кристиан
2. Красная кость
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Кай из рода красных драконов 2

Изгой Проклятого Клана. Том 3

Пламенев Владимир
3. Изгой
Фантастика:
аниме
фэнтези
фантастика: прочее
попаданцы
5.00
рейтинг книги
Изгой Проклятого Клана. Том 3

Я еще не царь

Дрейк Сириус
25. Дорогой барон!
Фантастика:
юмористическое фэнтези
аниме
попаданцы
5.00
рейтинг книги
Я еще не царь

Адепт

Листратов Валерий
4. Ушедший Род
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Адепт

Князь Андер Арес 3

Грехов Тимофей
3. Андер Арес
Фантастика:
рпг
аниме
фэнтези
5.00
рейтинг книги
Князь Андер Арес 3

Звездная Кровь. Экзарх III

Рокотов Алексей
3. Экзарх
Фантастика:
боевая фантастика
попаданцы
рпг
5.00
рейтинг книги
Звездная Кровь. Экзарх III

Мастер 5

Чащин Валерий
5. Мастер
Фантастика:
попаданцы
аниме
5.00
рейтинг книги
Мастер 5

Локки 7. Потомок бога

Решетов Евгений Валерьевич
7. Локки
Фантастика:
аниме
эпическая фантастика
фэнтези
5.00
рейтинг книги
Локки 7. Потомок бога

Двойник короля 12

Скабер Артемий
12. Двойник Короля
Фантастика:
аниме
фэнтези
попаданцы
5.00
рейтинг книги
Двойник короля 12

Двойник короля 19

Скабер Артемий
19. Двойник Короля
Фантастика:
аниме
фэнтези
попаданцы
5.00
рейтинг книги
Двойник короля 19

"Дальние горизонты. Дух". Компиляция. Книги 1-25

Усманов Хайдарали
Собрание сочинений
Фантастика:
фэнтези
боевая фантастика
попаданцы
5.00
рейтинг книги
Дальние горизонты. Дух. Компиляция. Книги 1-25

Вечный. Книга VI

Рокотов Алексей
6. Вечный
Фантастика:
рпг
фэнтези
5.00
рейтинг книги
Вечный. Книга VI